Java序列化,我可以更改变量的数据类型吗?

时间:2017-07-10 15:57:21

标签: java serialization deserialization

我需要在序列化和反序列化时更改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, ...

quantityDoubleInteger

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。 序列化是否可行。

1 个答案:

答案 0 :(得分:0)

尝试java.lang.Number。 整数和双数扩展它。