我需要在序列化和反序列化时更改short
字段的数据类型。
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ..., 0.0025, 0.0026, 0.0163, 0.0123, ...
中 quantity
到Double
在Integer
writeObject();
到Integer
项目类
Double
我试过这个但是反序列化时数量总是加倍。
readObject();
字段在类中必须为class Items implements Serializable {
private static final long serialVersionUID = 1537402844776823455L;
Double quantity;
private void writeObject(ObjectOutputStream o) throws IOException {
PutField field = o.putFields();
field.put("quantity", quantity.intValue());
}
private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException {
GetField field = stream.readFields();
if((field.get("quantity", new Double(0)) instanceof Integer)){
quantity = ((Integer) field.get("quantity", new Integer(0))).doubleValue();
}else if((field.get("quantity", new Double(0)) instanceof Double)){
quantity = (Double) field.get("quantity", new Double(0));
}
}
}
,在序列化对象中必须为quantity
。
序列化是否可行。
答案 0 :(得分:0)
尝试java.lang.Number。 整数和双数扩展它。