Java 如何将新对象指定给现有对象
我在从文件中读取对象时遇到问题 大体上,我将eshop end call作为loadshop方法Java 如何将新对象指定给现有对象,java,assign,Java,Assign,我在从文件中读取对象时遇到问题 大体上,我将eshop end call作为loadshop方法 MyShop eshop = new MyShop(); eshop.loadShop("eshop.txt"); 我还从文件中获取了商店物品 @Override public void loadShop(String filename) { try{ ObjectInput out = new ObjectInputStream(new FileInputStream
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
的字段,就可以匹配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
方法设为静态方法。使方法返回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");
定义分配?你想在那项作业中做什么?你的意思是创建引用的副本?或者在.readObject()中创建实例的副本
。我想将shop的内容(从文件中获取)复制到已创建的实例(eshop)。您能否详细说明out
变量?谢谢您的建议。这是一个很酷的解决方案。但不幸的是,我无法将loadShop方法更改为static和“Myshop”。这是学校的作业,我们不能更改它:-(如果方法是void
,则必须是“public void loadShop(String filename)”(它不返回值)而不是static
,那么你在方法内部要做的就是设置调用该方法的MyShop
对象的成员变量。我该怎么做呢如果您添加到问题中的loadShop
方法无法更改,那么这是一个绝对无用的方法。它实际上是一个不可操作的方法。当然可以更改,但我不能更改它的标题…:-)嗨,谢谢,但正如我上面所说的,我不能将其更改为静态并使其返回MyShop实例。。这是一个家庭作业(不幸的)…-(我是这样做的…-)非常非常感谢…-)