[英]How to assign new object to existing one
我從文件中讀取對象時遇到了問題。
總的來說,我使eshop端調用了loadshop方法。
MyShop eshop = new MyShop();
eshop.loadShop("eshop.txt");
而且我正在從文件中獲取shop對象。
@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”
謝謝您的答復.. :-)(對不起,我的英語)
只需編輯eshop
的所有字段,以匹配shop
。
只需重新設計,您無需編寫
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();
在MyShop類中,創建方法loadShop
static並返回對象。
public static MyShop loadShop(String something){
// do some thing
return (MyShop)out.readObject();
}
在你的代碼中
MyShop eshop = MyShop.loadShop("eshop.txt");
使您的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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.