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"
}
}
今のところ、取得したオブジェクトからすべてのフィールドをコピーしますが、見栄えが悪く、このようなものにもっと良い方法があるかどうか知りたいですか?