我在从文件中读取对象时遇到问题..
在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”
谢谢你的回答..:-)(抱歉我的英语)
发布于 2012-11-20 18:58:59
只需重新设计,您不需要编写
MyShop eshop = new MyShop();相反,你可以写下
MyShop eshop = MyShop.loadShop("eshop.txt");并使loadShop方法成为静态方法。并让它返回MyShop实例,如果它还没有这样做的话。
如果这不是一种选择,那么通过黑客攻击获得该实例仍然比编写手动复制代码要好:
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();发布于 2012-11-20 18:57:04
只需编辑所有eshop的字段,以匹配shop。
发布于 2012-11-20 18:59:18
在MyShop类中,创建方法loadShop static并返回对象。
public static MyShop loadShop(String something){
// do some thing
return (MyShop)out.readObject();
}在你的代码中
MyShop eshop = MyShop.loadShop("eshop.txt");https://stackoverflow.com/questions/13471681
复制相似问题