好吧,我不是java的新手,但由于一些奇怪的原因,我无法弄清楚为什么这对我不起作用。基本上我的applet中有3个类。
我的主要,我的字符串构造函数和我的数据类。
主类调用字符串构造函数,字符串构造函数将其最终产品存储到数据类中。最后,我正在尝试使用我的Main类访问数据类。
main的返回值始终为null,我无法弄清楚原因。我怀疑是我在某种程度上创建了两个独立的数据类对象,但我看了代码的例子,这看起来都是正确的。这是班级..
主
public class LaneGUI extends javax.swing.JApplet {
private laneData laneData;
Timer timer;
/** Initializes the applet LaneGUI */
public void init() {
laneData = new laneData();
xmlParser.parseInputString(connection.getFinalXMLString());
System.out.println(laneData.getLaneID());
string contructor ...
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;
}
}
这里有很多编辑,比如我在字符串类中完成了所有的xml解析和字符串编辑。
基本上,当我在字符串构造函数中设置它之后检查getLaneID时,值是正确的。但是,当我从主要调用get时,它为null。
答案 0 :(得分:1)
XMLParser和LaneGUI指的是laneData的两个不同实例。
而不是你在LaneGUI中的最后一行,它说:
System.out.println(laneData.getLaneID());
你需要这样的东西:
System.out.println(xmlParser.getLaneData().getLaneID());
您还需要向XMLParser添加一个getLaneData(),它返回它的laneData实例(或其深层副本。)
答案 1 :(得分:0)
正如您正确推测的那样,您有两个不同的laneData
实例。 XMLParser
类的本地实例laneData
与LaneGUI
引用的实例不同。