Java:无法访问公共成员变量
我正在努力访问一个成员变量,却找不到任何解释。如果我调用app.initDB(config),它会工作;但是,当我按原样调用initDB()时,config为null。请查看代码段以查找有问题的行 我希望在这里为app对象调用配置时对其进行初始化Java:无法访问公共成员变量,java,Java,我正在努力访问一个成员变量,却找不到任何解释。如果我调用app.initDB(config),它会工作;但是,当我按原样调用initDB()时,config为null。请查看代码段以查找有问题的行 我希望在这里为app对象调用配置时对其进行初始化 public class App { public RestConfig config; public App(RestConfig config) { config = config; } publ
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...
}
公共类应用程序{
公共RestConfig配置;
公共应用程序(RestConfig配置){
config=config;
}
public void initDB(){//未命中类型返回
System.out.println(config);//您需要将构造函数更改为具有this.config=config
public App(RestConfig config){
config = config;
}
这里发生的事情是将config的值分配给传递的config值,而不是类级别变量
您需要做的是:
public App(RestConfig config){
this.config = config;
}
因此,类级别变量/字段保持为空。很高兴看到yogesh帮助yogesh。任何值得使用的IDE都会在此分配上显示警告。您应该检查是否存在警告,如果没有,请研究如何为特定IDE打开“自分配”警告。(如果你不使用IDE……考虑使用一个可以帮助你捕捉bug)@安迪我现在使用cScice,但是我需要开始使用IDE。