因此,前几天我在这里有一个问题,关于如何在不创建单独实例的情况下使用两个其他不同的类访问同一数据类。建议使用单例,所以我已经做过一些研究,但是没有太多。

我遇到的问题是,我的主类在尝试访问数据单例时得到了空指针异常。但是我的另一个班级可以访问它并获取数据。那到底怎么可能?我有一个非常基本的设置...

单身人士

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

最佳答案

您需要private laneData laneData = laneData.INSTANCE;

您也可以只使用laneData.INSTANCE.getLaneID()

Java准则还建议不要将Class和Enum名称大写,即。 LaneData

08-16 13:14