【发布时间】:2018-04-21 13:53:06
【问题描述】:
我实际上有一个名为 Ranking 的对象,它包含在 ArrayList of Objects 和一个 Integer 中。 像这样:
private static ArrayList<Acabada> partides = new ArrayList<Acabada>();
private int tipus_ordenacio;
当我尝试从 .ser 文件反序列化时,我没有得到所有属性,只有整数。当我尝试从数组中生成.size() 时,我得到0。似乎它正确地反序列化了整数,但没有反序列化对象数组。我该怎么办?下面是我的反序列化代码。
public domain.Ranking llegirRanking() {
Ranking ranking;
try {
FileInputStream fileIn = new FileInputStream("ranking.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
ranking = (Ranking) in.readObject();
System.out.println("tipus ordenacio :"+ranking.getTipus_ordenacio());
System.out.println("tamany :"+ranking.getTamany());
in.close();
fileIn.close();
}
【问题讨论】:
-
您确定列表在序列化之前包含对象吗??
-
是的,我在序列化之前打印了 arrayList 的大小,它给了我正确的数字。
-
我的错。该列表是
static。它不会被序列化:)。除非serialVersiinUID字段是一种特殊情况,否则static字段不会被序列化.. -
@CKing
serialVersionUID也不会以正常方式序列化。它在类描述符中发送一次,而不是与对象一起发送。 -
该死的是真的!谢谢!!!
标签: java deserialization