java - 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;
}
因此类级别变量/字段保持为空。
推荐阅读
- python - Python - 将 numpy 数组作为列添加到具有不同长度的 pandas 数据帧
- javascript - 使用 jquery 切换 iframe 的视图
- php - PHP 7: XPath - 如何简化这个查询?
- r - Not able to see image in shiny
- android - 如何限制sqllite查询?
- mysql - 将字典键映射到 Mysql 数据库表列
- python - 如何将方程变量作为特征向量传递给python中的训练分类器
- json - Flutter: how to delete last node from firebase database?
- javascript - How to capture the "Stay on Page" button for unsaved changes in Firefox?
- swift - 无法将“(Float) -> FormExpression”类型的值转换为预期的参数类型“(_) -> FormExpression”