首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将新对象分配给现有对象

如何将新对象分配给现有对象
EN

Stack Overflow用户
提问于 2012-11-20 18:54:30
回答 4查看 1.1K关注 0票数 1

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

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

代码语言:javascript
复制
MyShop eshop = new MyShop();
eshop.loadShop("eshop.txt");

此外,我还从文件中获取了商店对象。

代码语言:javascript
复制
@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”

谢谢你的回答..:-)(抱歉我的英语)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-20 18:58:59

只需重新设计,您不需要编写

代码语言:javascript
复制
MyShop eshop = new MyShop();

相反,你可以写下

代码语言:javascript
复制
MyShop eshop = MyShop.loadShop("eshop.txt");

并使loadShop方法成为静态方法。并让它返回MyShop实例,如果它还没有这样做的话。

如果这不是一种选择,那么通过黑客攻击获得该实例仍然比编写手动复制代码要好:

代码语言:javascript
复制
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);
    }
}

你可以像这样使用它

代码语言:javascript
复制
MyShop tempShop = new MyShop();
tempShop.loadShop();
MyShop eshop = tempShop.getReadShop();
票数 0
EN

Stack Overflow用户

发布于 2012-11-20 18:57:04

只需编辑所有eshop的字段,以匹配shop

票数 0
EN

Stack Overflow用户

发布于 2012-11-20 18:59:18

在MyShop类中,创建方法loadShop static并返回对象。

代码语言:javascript
复制
public static MyShop loadShop(String something){
// do some thing

return (MyShop)out.readObject();     
}

在你的代码中

代码语言:javascript
复制
MyShop eshop = MyShop.loadShop("eshop.txt");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13471681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档