首页 > 解决方案 > Java:无法访问公共成员变量

问题描述

我正在努力访问成员变量,但找不到任何解释。如果我调用 app.initDB(config) ,它可以工作;但是,当我按原样调用 initDB() 时,配置为空。请查看代码片段以找到有问题的行。

我期待配置被初始化,因为我在这里为应用程序对象调用它。

public class App {
    public RestConfig config;

    public App(RestConfig config) {
        config = config;
    }

    public void initDB() { // miss type returns
        System.out.println(config); // <-- prints null , why?**
    }
}

class RestMain {
    public static void main(String[] args) throws IOException {
        RestConfig config = new RestConfig();
        App app = new App(config);
        app.initDB();
    }

}

public class RestConfig {
    //some config...
}

标签: java

解决方案


您需要将构造函数更改为具有this.config = config.

public App(RestConfig config){
        config = config;
      } 

这里发生的事情是您将 config 的值分配给传递的 config 值,而不是类级别的变量。

你需要做的是:

public App(RestConfig config){
        this.config = config;
      } 

因此类级别变量/字段保持为空。


推荐阅读