我试图从readExternal
接口实现Externalizable
,以便在我意识到我无法在其中创建新对象(并使用它)时更有效地序列化我的大对象方法。关键是我的有效表示需要被破译,因此我不能直接分配我的字段。代码如下:
public class BigObject implements Externalizable {
//lots of fields and methods...
@Override
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(this.encode()); //encodes to a BigInteger
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
BigInteger code = (BigInteger) in.readObject();
BigObject bo = BigObject.decode(code);
// now I would like this to be "bo"
}
}
现在我从我得到的对象中复制所有字段,但它看起来很难看,我想知道是否会有更好的方式来做这样的事情?
答案 0 :(得分:-2)
问题是您的encode
和decode
方法不一致。 decode
是静态方法,encode
不是。我的建议是decode
非静态。