2017-11-09 5 views
1

Ich muss einen persistenten Wert aktualisieren. ich meine:Chronicle-Map-Update beibehalten Wert

////// Klasse InfoEquipoCache verwendet als Wert von CM

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

///// Hauptklasse ein CM von InfoEquipoCache hat

ChronicleMap<String, InfoEquipoCache> equipos; 

... .. //// In einem Teil der Hauptklasse:

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

Aber equipos.get (idEqu ipo) hat eine Referenz von EquipoCache und innerhalb von InfoEquipoCache hat eine andere Referenz von EquipoCache. Als Ergebnisse actualiza Methode ist usless

Jemand weiß, wie man Änderungen dieses Wertes macht?

Antwort

1

Wenn Sie einen Wert in der Chronik-Map speichern, wird er in den Off-Heap-Speicher serialisiert. Wenn Sie also get() aufrufen, werden Sie eine andere (wenngleich wertgleiche) Instanz abrufen. Wenn Sie mit derselben Instanz arbeiten müssen, sollten Sie eine Lösung im Speicher in Betracht ziehen (z. B. j.u.HashMap oder j.u.c.ConcurrentHashMap).

Verwandte Themen