我在从文件读取对象时遇到问题..
在 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/