Java kryo列表序列化
我正在尝试使用Kryo序列化一些对象的列表(自定义类:List>)Java kryo列表序列化,java,list,serialization,constructor,kryo,Java,List,Serialization,Constructor,Kryo,我正在尝试使用Kryo序列化一些对象的列表(自定义类:List>) list2D; // List<List<MyClass>> which is already produced. Kryo k1 = new Kryo(); Output output = new Output(new FileOutputStream("filename.ser")); k1.writeObject(output, (List<List<Myclass>>)
list2D; // List<List<MyClass>> which is already produced.
Kryo k1 = new Kryo();
Output output = new Output(new FileOutputStream("filename.ser"));
k1.writeObject(output, (List<List<Myclass>>) list2D);
output.close();
我怎样才能解决这个问题 根据您的错误,您可能希望向类中添加无参数构造函数:
public class MyClass {
public MyClass() { // no-arg constructor
}
//Rest of your class..
}
读回对象时不能使用
List.class
,因为List
是一个接口
k2.readObject(listRead, ArrayList.class);
谢谢你的回答。但是MyClass已经有了一个接受一个字符串参数的构造函数。有什么想法吗?添加零参数构造函数或编写自己的序列化程序来创建对象。您可以扩展FieldSerializer并覆盖create。您解决了这个问题吗?您是对的。我们不需要投。Ie:
List data=kryo.readObject(输入,ArrayList.class)代码>
public class MyClass {
public MyClass() { // no-arg constructor
}
//Rest of your class..
}
k2.readObject(listRead, ArrayList.class);