开发者

Accessing data from a data class returning null

开发者 https://www.devze.com 2023-03-13 04:41 出处:网络
OK, I\'m not super new to java but for some odd reason I can\'t figure out why this is not working for me.Basically I have 3 classes in my applet.

OK, I'm not super new to java but for some odd reason I can't figure out why this is not working for me. Basically I have 3 classes in my applet.

My main, my string constructor, and my data class.

The main class calls the string constructor, the string constructor stores its final product into the data class. Last, I'm trying to access the data class using my Main class.

The returned value to the main is always null and I can't figure out why. My suspicion is I'm somehow creating 2 separate data class objects but Ive looked at examples of code and it all seems correct. Here are the classes..

main.

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.o开发者_Go百科ut.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);

data class

public class laneData {
private String laneID;

public String getLaneID() {
    return laneID;
}

public void setLaneID(String laneID) {
    this.laneID = laneID;
}

}

There is a lot of editing here, like in the string class I took out all of the xml parsing and string editing.

Basically, when i check the getLaneID after i set it in the string constructor the value is correct. But when i call a get from the main, its null.


XMLParser and LaneGUI are referring to two different instances of laneData.

Instead of your final line in LaneGUI, which says this:

System.out.println(laneData.getLaneID()); 

You need something like this:

System.out.println(xmlParser.getLaneData().getLaneID()); 

You'll also, of couse, need to add a getLaneData() to XMLParser that returns it's laneData instance (or a deep copy thereof.)


As you rightly speculated, you have two different instances of laneData. The XMLParser class has a local instance of laneData different from the instance referenced by LaneGUI.

0

精彩评论

暂无评论...
验证码 换一张
取 消