gpt4 book ai didi

java - 有没有办法让当前类指向Java Serialized中刚刚读取的新对象?

转载 作者:行者123 更新时间:2023-12-02 04:07:25 25 4
gpt4 key购买 nike

我正在尝试读取社交网络模拟的对象。读取方法使用 Java Serialized。代码如下所示:

public class SocialNetwork  implements Serializable{

// lots of fields

public SocialNetwork(){
//lots of inilization
}
public void writethisObject() throws IOException{
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("Simulation.bin"));
objectOutputStream.writeObject(this);
}

public void readfromObject(File f) throws IOException, ClassNotFoundException{
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(f));
SocialNetwork newSocialNetwork = (SocialNetwork) objectInputStream.readObject();
this = newSocialNetwork;
}

}

但是,正如您所看到的,我试图通过使 this = newSocialNetwork.class 来使当前类指向我刚刚读取的对象。这给了我一个预期的错误。我可以通过将当前 SocialNetwork 类的每个字段都添加到 newSocialNetwork 来解决此问题。然而,我不想这样做,因为我的类(class)里有很多领域。而且会显得非常凌乱。我希望您已经了解我正在尝试做什么。

最佳答案

由于您无法在 Java 中重写此设置,并且您只想让类的一个实例使用 Singelton Pattern :

public class SocialNetwork  implements Serializable{
// lots of fields

private static SocialNetwork myself = new SocialNetwork();

private SocialNetwork(){ // private constructor
//lots of inilization
}

public static SocialNetwork getInstance() {
return myself;
}

public void writethisObject() throws IOException{...}

public void readfromObject(File f) throws IOException, ClassNotFoundException{
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(f));
myself = (SocialNetwork) objectInputStream.readObject();
}

}

关于java - 有没有办法让当前类指向Java Serialized中刚刚读取的新对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134177/

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