Java 从返回null的数据类访问数据
好吧,我对java并不是非常陌生,但出于某种奇怪的原因,我不明白为什么这对我不起作用。基本上,我的applet中有3个类 我的main、字符串构造函数和数据类 主类调用字符串构造函数,字符串构造函数将其最终产品存储到数据类中。最后,我尝试使用我的主类访问数据类 main的返回值总是空的,我不知道为什么。我的怀疑是,我不知何故创建了两个独立的数据类对象,但我看了一些代码示例,似乎都是正确的。这是课程 梅因 字符串构造函数Java 从返回null的数据类访问数据,java,Java,好吧,我对java并不是非常陌生,但出于某种奇怪的原因,我不明白为什么这对我不起作用。基本上,我的applet中有3个类 我的main、字符串构造函数和数据类 主类调用字符串构造函数,字符串构造函数将其最终产品存储到数据类中。最后,我尝试使用我的主类访问数据类 main的返回值总是空的,我不知道为什么。我的怀疑是,我不知何故创建了两个独立的数据类对象,但我看了一些代码示例,似乎都是正确的。这是课程 梅因 字符串构造函数 public class XMLParser { private lane
public class XMLParser {
private laneData laneData;
public void parseInputString(String input){
try{
/*some xmlparsing*/
laneData = new laneData();
laneData.setLaneID(string);
数据类
public class laneData {
private String laneID;
public String getLaneID() {
return laneID;
}
public void setLaneID(String laneID) {
this.laneID = laneID;
}
}
这里有很多编辑工作,比如在string类中,我完成了所有xml解析和字符串编辑
基本上,当我在字符串构造函数中设置getLaneID后检查它时,该值是正确的。但是当我从main调用get时,它是null。XMLParser和LaneGUI指的是laneData的两个不同实例 而不是你在LaneGUI的最后一行,上面写着:
System.out.println(laneData.getLaneID());
你需要这样的东西:
System.out.println(xmlParser.getLaneData().getLaneID());
当然,您还需要向XMLParser添加一个getLaneData(),该解析器将返回其laneData实例(或其深层副本)。正如您正确推测的那样,您有两个不同的
laneData实例。XMLParser
类的laneData
本地实例与LaneGUI
私有laneData laneData引用的实例不同代码>嗯。好的。在看到我的尝试之后,是否有一种更简单的方法让1个类充满数据。并且可以被许多其他类轻松访问?还是必须以这种循环方式进行?任何对访问填充的“laneData”实例感兴趣的客户端都需要对该实例进行引用。提供这种访问的方法有很多(例如,通过所属类的访问器使实例可用,通过方法参数将对实例的引用传递给感兴趣的客户机,等等),使所讨论的类成为单例。请参阅Joshua Bloch的《高效Java》,以了解如何做到这一点的好例子。
System.out.println(xmlParser.getLaneData().getLaneID());