gpt4 book ai didi

java - 如何将新对象分配给现有对象

转载 作者:行者123 更新时间:2023-12-01 05:00:21 26 4
gpt4 key购买 nike

我在从文件读取对象时遇到问题..

在 main 中,我让 eshop end 调用了一个方法 loadshop。

MyShop eshop = new MyShop();
eshop.loadShop("eshop.txt");

而且我还从文件中获取商店对象。

@Override
public void loadShop(String filename) {

try{
ObjectInput out = new ObjectInputStream(new FileInputStream(filename));
MyShop shop = (MyShop)out.readObject();
out.close();

} catch (Exception e) {
e.printStackTrace();
}
}

但我就是不知道如何将“shop”分配给“eshop”

谢谢您的回答..:-)(对不起我的英语)

最佳答案

重新设计即可,无需编写

MyShop eshop = new MyShop();

相反,写

MyShop eshop = MyShop.loadShop("eshop.txt");

并将 loadShop 方法设为静态。并使其返回 MyShop 实例(如果尚未执行此操作)。

如果这不是一个选项,那么通过 hack 获取该实例仍然比编写手动复制代码更好:

public class MyShop {
private MyShop readShop;

public MyShop getReadShop() { return readShop; }

public void loadShop(String fName) {
try {
ObjectInput out = new ObjectInputStream(new FileInputStream(filename));
this.readShop = (MyShop)out.readObject();
out.close();

} catch (Exception e) {
throw new RuntimeException(e);
}
}

你会像这样使用它

MyShop tempShop = new MyShop();
tempShop.loadShop();
MyShop eshop = tempShop.getReadShop();

关于java - 如何将新对象分配给现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13471681/

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