Ich habe eine Klasse mit einem Feld von scala.collection.mutable.LongMap
Typ.Deserializing LongMap in Kryo
Nachdem es mit Kryo
Serialisierung ich versuchen, das Objekt deserialisieren und die folgende Ausnahme erhalten:
com.esotericsoftware.kryo.KryoException: java.lang.IllegalArgumentException: Can not set final scala.collection.mutable.LongMap field com.name.of.field to scala.collection.mutable.HashMap
Serialization trace:
field (com.name.of)
at com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.read(FieldSerializer.java:626) ~[com.esotericsoftware.kryo.kryo-2.21.jar:na]
at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:221) ~[com.esotericsoftware.kryo.kryo-2.21.jar:na]
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:648) ~[com.esotericsoftware.kryo.kryo-2.21.jar:na]
at com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.read(FieldSerializer.java:605) ~[com.esotericsoftware.kryo.kryo-2.21.jar:na]
at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:221) ~[com.esotericsoftware.kryo.kryo-2.21.jar:na]
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:729) ~[com.esotericsoftware.kryo.kryo-2.21.jar:na]
IIUC die LongMap
als HashMap
serialisiert und dann versagt Deserialisierung als die HashMap
kann nicht auf die LongMap
geschrieben werden Feld.
Ich manuell etwas wie https://github.com/romix/akka-kryo-serialization/blob/master/src/test/scala/com/romix/scala/serialization/kryo/MapSerializerTest.scala#L78 ausgeführt und bestätigt, dass serialisiert LongMap
in HashMap
deserialized ist.
Jede Idee, wie man richtig lesen/schreibt dieses Objekt so wird die LongMap
als LongMap
HashMap
statt gelesen werden?
Muss ich eine Proxy-Klasse verwenden? einen benutzerdefinierten Serializer/Deserializer schreiben? Gibt es alternativ eine anständige Serialisierungsbibliothek, die LongMap
s richtig behandelt?
P.S. Ich hätte die Frage mit LongMap
markiert, aber ich habe nicht genug Ruf, um neue Tags zu erstellen.
zeigen Sie Ihre Klassendefinition ... –