问题描述
|
因此,前几天我在这里有一个问题,关于如何使用两个其他不同的类访问同一数据类而不创建单独的实例。建议使用单例,所以我已经做了一些研究,但是没有太多的研究。
我遇到的问题是,我的主类在尝试访问数据单例时得到了空指针异常。但是我的其他班级可以访问它并获取数据。那到底怎么可能?我有一个非常基本的设置...
单身人士
public enum laneData {
INSTANCE;
private String laneID;
public String getLaneID() {
return laneID;
}
public void setLaneID(String laneID) {
this.laneID = laneID;
}
}
主班电话
private laneData laneData;
public void init() {
laneData.setLaneID(\"test\"); //these two lines each throw null pointer unless commented out
System.out.println(laneData.getLaneID());
....
其他班级
public class XMLParser {
private LaneGUI laneGUI;
private laneData laneData;
public void parseInputString(String input){
laneData.setLaneID(getCharacterDatafromElement(line)); //both of these work fine
System.out.println(\"stored ID: \" + laneData.getLaneID());
解决方法
您需要三英镑。
您也可以只使用
laneData.INSTANCE.getLaneID()
。
Java准则还建议不要将Class和Enum名称大写,即。 LaneData
。
,
建议使用单例
所以我做了一些研究但是
没什么关系。
关于单例模式有很多东西。
这是一个单例示例(请注意不同之处)
public class MySingleton {
private String label;
private static MySingleton single;
private MySingleton(String label) {
this.label = label;
}
public static MySingleton getInstance(String label) {
if (singleton == null) singleton = new MySingleton(label);
return singleton;
}
}