java - 在Java中,谁能解释为什么这个对象为空?

标签 java exception null

class Monitor {
  TheManager manager;
  Map<String, Subject> subjectMap;
  public Monitor() {
    TheManager manager = new TheManager();
    Map<String, Subject> subjectMap = new HashMap<String, Subject>();
  }

  public void addObject(String objName, Object obj) {
    if(objName == null) System.out.println("name null");
    if(obj == null) System.out.println("obj null");
    if(manager == null) System.out.println("manager null");
    manager.addObject(objName, obj);
  }
}

我收到空指针异常,因为 manager 为空。我在代码中的其他地方实例化了一个 Monitor 对象。当我尝试使用“addObject”方法时,它在打印“manager null”之前给了我 NPE(因为显然是这样)。

我觉得我在这里错过了一些非常基本的东西......有人可以帮忙吗?

最佳答案

你的构造函数包含

TheManager manager = new TheManager();

而不是

this.manager = new TheManager();

subjectMap 的游戏相同。

关于java - 在Java中,谁能解释为什么这个对象为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621690/

相关文章:

c# - 检查变量是否为 null 或空的正确方法

java - Amazon SQS 调用 lambda 函数

c++ - 为什么不捕获 `std::promise::~promise` 中已经传播的异常

java - NoSuchElementException 是什么意思以及如何解决?

javascript - 为什么我的 document.getElementById 为 Null?

c++ - 跳过未使用的虚函数

java - JSoup:替换字符串会添加新行

java - 安卓工作室错误 : Failed to Resolve.。 <图书馆名称>

java - 如何在 Eclipse 中打开 Java 库系统文件?

.net - 使用 Azure 缓存的访问被拒绝错误