首页 > 解决方案 > 是否可以通过不同的类获取和设置类变量?

问题描述

我尝试使用 setter 与其他类 A 实例化一个类,并使用 getter 将变量获取到类 B,但它返回 null。我明白,因为我创建了类的新实例,所以它为空。还有什么其他方法?

public class ContextBrowser {
String browser;

public String getBrowser() {
    return browser;
}

public void setBrowser(String browser) {
    this.browser = browser;
}
}


public class SetBrowser{

public void setCurrentBrowser(String browser){       
    ContextBrowser contextBrowser =  new ContextBrowser();
    contextBrowser.setBrowser(browser);
}
}


public class getBrowser{

public String readBrowser(){
  ContextBrowser contextBrowser =  new ContextBrowser();
  return contextBrowser.getBrowser()
}
}

标签: java

解决方案


public class ContextBrowser {
    /*
    Singleton class
    */

    private String browser;

    private static ContextBrowser contextBrowserInstance;

    // private constructor
    private ContextBrowser() {}

    public static ContextBrowser getContextBrowserInstance() {
        if(contextBrowserInstance == null) {
            contextBrowserInstance = new ContextBrowser();
        }
        return contextBrowserInstance;
    }

    public String getBrowser() {
        return browser;
    }

    public void setBrowser(String browser) {
        this.browser = browser;
    }

}


public class SetBrowser{

    public void setCurrentBrowser(String browser){       
        ContextBrowser contextBrowser =  ContextBrowser.getContextBrowserInstance();
        contextBrowser.setBrowser(browser);
    }
}


public class GetBrowser{

    public String readBrowser(){
      ContextBrowser contextBrowser =  ContextBrowser.getContextBrowserInstance();
      return contextBrowser.getBrowser();
    }
}

推荐阅读