我从文件中读取对象时出现问题..
在主要的,我让eshop结束了一个方法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();
}
}
但我无法弄清楚如何将“商店”分配给“eshop”
感谢您的回答.. :-)(对不起我的英文)
答案 0 :(得分:0)
只需修改所有eshop
的字段,即可匹配shop
。
答案 1 :(得分:0)
重新设计,你不需要写
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();
答案 2 :(得分:0)
在MyShop类中创建方法loadShop
static并返回您的对象。
public static MyShop loadShop(String something){
// do some thing
return (MyShop)out.readObject();
}
并在您的代码中
MyShop eshop = MyShop.loadShop("eshop.txt");
答案 3 :(得分:0)
将loadShop
方法设为static
方法。使方法返回MyShop
对象。在MyShop
课程上调用它。将返回值分配给eshop
。例如:
public class MyShop {
public static MyShop loadShop(String filename) {
// ...
MyShop shop = (MyShop)out.readObject();
// ...
return shop;
}
}
您调用方法的地方:
MyShop eshop = MyShop.loadShop("eshop.txt");