gpt4 book ai didi

java - 如何外部化一个扩展另一个类的类

转载 作者:行者123 更新时间:2023-12-01 15:07:07 24 4
gpt4 key购买 nike

简介

我有以下类(class):

public class Foo extends ArrayList<ElementsClass> implements Externalizable {
Field field1 = new Field();
Field field2 = new Field();

...
}

我实现了方法 writeExternalreadExternal像这样:

public void writeExternal(ObjectOutput out) throws IOException {        
out.writeObject(field1);
out.writeObject(field2);
}

public void readExternal(ObjectInput in) throws IOException,ClassNotFoundException {
field1 = (Field) in.readObject();
field2 = (Field) in.readObject();
}

观察

其中一个字段不是 Serializable这就是我实现 Externalizable 的原因。我只想将那些我能够做到的事情具体化。

问题

虽然我知道 ArrayList<ElementsClass>如果 ElementsClass 则可序列化是可序列化的,我不知道如何外部化该类 Foo本身。

最佳答案

试试这个:

public void writeExternal(ObjectOutput out) throws IOException {        
out.writeObject(super.toArray());
out.writeObject(field1);
out.writeObject(field2);
}

public void readExternal(ObjectInput in) throws IOException,ClassNotFoundException {
Object[] arr = (Object[]) in.readObject();
for (int k=0; k<arr.length; k++) super.add(arr[k]);
field1 = (Field) in.readObject();
field2 = (Field) in.readObject();
}

关于java - 如何外部化一个扩展另一个类的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com