我正在努力访问成员变量,但无法找到任何解释.如果我调用app.initDB(config),它可以工作; 但是当我按原样调用initDB()时,config为null.请查看代码段以找到有问题的行.
我期待配置初始化,因为我在这里调用app对象.
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...
}
Run Code Online (Sandbox Code Playgroud)
你需要改变你的构造函数this.config = config.
public App(RestConfig config){
config = config;
}
Run Code Online (Sandbox Code Playgroud)
这里发生的事情是你将config的值分配给config的传递值而不是类级变量.
你需要做的是:
public App(RestConfig config){
this.config = config;
}
Run Code Online (Sandbox Code Playgroud)
因此类级别变量/字段保持为空.