Java:无法访问公共(public)成员变量

标签 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...
}

最佳答案

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

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

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

您需要做的是:

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

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

关于Java:无法访问公共(public)成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50036114/

相关文章:

java - 如何在我的android项目中导入com.android.keyguard.KeyguardPatternView?

java - 我需要一些帮助来制作一个打印 1-100 的表格

Java:stderr 并捕获异常

java - Spring Reactor 合并与 Concat

java - 关于守护线程为非守护线程提供一些服务

Java 8 Streams 按大于最旧元素的平均值进行过滤

java - 如何在GWT中使用autobean将json转换为java类

JavaMelody 和 Spring

java - Google 电子表格中的 appengine 问题

java - GWT 使用 DOM.clone 克隆一个小部件