我试图序列化继承自ArrayList的类A.
class A<T> extends ArrayList<T>{
// some stuff ...
}
这很好用。输出是列表元素的简单数组。但是,如果我向A类添加字段,则不会将其序列化:
class A<T> extends ArrayList<T>{
String text = "text";
}
导致与上面的类相同的json输出 - 字符串不会出现。我用gson和libgdx json序列化器尝试了这个,它们都以相同的方式工作。如何序列化类字段和列表元素?
( 作为一种解决方法,我将列表存储为A:
中的字段class A<T>{
ArrayList<T> list;
String key;
}
但这不是一个优雅的解决方案,因为我必须自己在A中实现所有列表方法(如.add(),. get(),...)。 )
非常感谢您的帮助。
答案 0 :(得分:0)
在解析时尝试这样做:
Type type = new TypeToken<A<WhateverTypeOfArrayListYouWant>>(){}.getType();
gson.fromJson(string, type);
编辑: 还有你的序列化问题:
@Override
private void writeObject(java.io.ObjectOutputStream s)
throws java.io.IOException{
super.writeObject(s);
s.writeInt(yourInt);
s.writeLong(yourLong);
}
@Override
private void readObject(java.io.ObjectInputStream s)
throws java.io.IOException, ClassNotFoundException {
super.readObject(s);
yourInt= s.readInt();
yourLong= s.readLong();
}