Java 从返回null的数据类访问数据

Java 从返回null的数据类访问数据,java,Java,好吧,我对java并不是非常陌生,但出于某种奇怪的原因,我不明白为什么这对我不起作用。基本上,我的applet中有3个类 我的main、字符串构造函数和数据类 主类调用字符串构造函数,字符串构造函数将其最终产品存储到数据类中。最后,我尝试使用我的主类访问数据类 main的返回值总是空的,我不知道为什么。我的怀疑是,我不知何故创建了两个独立的数据类对象,但我看了一些代码示例,似乎都是正确的。这是课程 梅因 字符串构造函数 public class XMLParser { private lane

好吧,我对java并不是非常陌生,但出于某种奇怪的原因,我不明白为什么这对我不起作用。基本上,我的applet中有3个类

我的main、字符串构造函数和数据类

主类调用字符串构造函数,字符串构造函数将其最终产品存储到数据类中。最后,我尝试使用我的主类访问数据类

main的返回值总是空的,我不知道为什么。我的怀疑是,我不知何故创建了两个独立的数据类对象,但我看了一些代码示例,似乎都是正确的。这是课程

梅因

字符串构造函数

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());