2017-11-09 23 views
1

지속 된 값을 업데이트해야합니다. 는 말은 :크로니클 맵 업데이트 지속 값

////// 클래스 InfoEquipoCache는

class InfoEquipoCache implements BytesMarshallable { 
    private EquipoCache equipoCache; 
    public void actualiza() { 
     ..... 
     equipoCache.actualiza() 
     ...... 
    } 
    ....... 

///// 주요 클래스

ChronicleMap<String, InfoEquipoCache> equipos; 

InfoEquipoCache

의 CM을 가지고 CM의 값으로 사용 ... .. //// 주요 클래스의 일부에서 :

equipos.get(idEquipo).actualiza() //InfoEquipoCache contains actualiza method 

그러나, equipos.get (idEqu ipo)에는 EquipoCache에 대한 참조가 있고 InfoEquipoCache 내부에는 EquipoCache에 대한 다른 참조가 있습니다. 결과로 실제 방법은 usseless입니다

누군가가이 값을 변경하는 방법을 알고 있습니까?

답변

1

크로니클 맵에 값을 저장하면이 값은 오프 힙 메모리로 직렬화됩니다. 따라서 get()으로 전화하면 다른 (비록 값 - 동일) 인스턴스를 검색하게됩니다.

동일한 인스턴스로 작업해야하는 경우 메모리 내 솔루션 (예 : j.u.HashMap 또는 j.u.c.ConcurrentHashMap)을 고려해야합니다.