Java 如何获取已在另一个类中设置的instance值?
我是Java新手。我有3个类:1-DataHolder 2-SetToDateHolder 3-GetFromDataHolder;在“SetToDateHolder”类中,我将值设置为dataholder对象,并尝试在“GetFromDataHolder”类中访问它,但它得到了null值,我知道这是因为创建了新实例。你能帮我认识到我可以得到我在另一个类中设置的实例的值吗 这些是课程:Java 如何获取已在另一个类中设置的instance值?,java,object,instance,Java,Object,Instance,我是Java新手。我有3个类:1-DataHolder 2-SetToDateHolder 3-GetFromDataHolder;在“SetToDateHolder”类中,我将值设置为dataholder对象,并尝试在“GetFromDataHolder”类中访问它,但它得到了null值,我知道这是因为创建了新实例。你能帮我认识到我可以得到我在另一个类中设置的实例的值吗 这些是课程: public class DataHolder { private String myName;
public class DataHolder {
private String myName;
public String getMyName() {
return myName;
}
public void setMyName(String myName) {
this.myName = myName;
}
}
public class SetToDataHolder {
public static void main(String[] args) {
DataHolder dataHolder = new DataHolder();
dataHolder.setMyName("Wesley");
}
}
public class GetFromDataHolder{
public static void main(String[] args) {
DataHolder dataHolder = new DataHolder();
System.out.println(dataHolder.getMyName());
}
}
我真的不明白为什么您需要另外两个类,因为您的DataHolder类中已经有了getter/setter,但下面是您应该如何继续您的逻辑:
public class DataHolder {
private String myName;
public String getMyName() {
return myName;
}
public void setMyName(String myName) {
this.myName = myName;
}
}
public class SetToDataHolder {
private DataHolder dataHolder;
public SetToDataHolder(DataHolder dataHolder){
this.dataHolder = dataHolder;
}
public void setMyName(String myName) {
this.dataHolder.setMyName(myName);
}
}
public class GetFromDataHolder{
private DataHolder dataHolder;
public GetFromDataHolder(DataHolder dataHolder){
this.dataHolder = dataHolder;
}
public String getMyName() {
this.dataHolder.getMyName();
}
}
public class MainClass{
public static void main(String[] args){
DataHolder dataHolder = new DataHolder();
SetToDataHolder setToDataHolder = new SetToDataHolder(dataHolder);
setToDataHolder.setMyName("Wesley");
GetFromDataHolder getFromDataHolder = new GetFromDataHolder(dataHolder);
System.out.println(getFromDataHolder.getMyName());
}
}
其思想是,您的SetToDataHolder和GetFromDataHolder可以访问相同的DataHolder实例。这两个DataHolder实例彼此不相关。如果要为所有实例设置值,请使用静态变量。但是,这不仅仅是在另一个方法中,也可以说是在另一个应用程序中。请确切地说明您是如何运行代码的。@tgdavies它们都是主要的方法,我认为他是如何运行它们的。每次您运行JVM,使用
java SetToDataHolder
或java GetFromDataHolder
您将从一张“白板”开始。新进程中不会存在在上一进程中创建的对象。谢谢您的回答。实际上,我正在验证数据库中的数据。所以我需要dataHolder在SetToDataHolder类中保存数据,然后我在另一个类中获取数据,并与原始数据进行比较以进行断言。我只想在不同的类中完成它,而不使用第三方记录器,如Excel或CVS文件。这样做可能吗?在本例中,我确实有3个类,一个名为“Entity”(保存从数据库获取的数据),一个名为“EntityDAO”(从数据库获取数据并返回一个列表),最后一个类名为“DataIntegrityChecker”(使用特定的方法验证获取的实体(List entities))。这是一个例子,您可以自由思考另一种方法。DAO是用于从数据源获取数据的类的常规名称。实体是保存数据的类的常规名称,而另一个类是我想象的结果。