【问题标题】:Can someone explain what this error means please?有人可以解释一下这个错误是什么意思吗?
【发布时间】:2011-03-06 21:12:25
【问题描述】:
java.lang.NullPointerException
    at java.lang.Integer.compareTo(Unknown Source)
    at java.lang.Integer.compareTo(Unknown Source)

我稍微编辑了我的代码,没有删除任何方法,但更改了一两个名称,现在……砰!没有任何作用!很烦人,因为我刚刚让它工作,回去评论它,现在我看不到有什么变化......帮助? :)

【问题讨论】:

  • 没有代码,没有人能说出来
  • 没有看到代码很难查明问题,但here is a Javadoc for NullPointerException 解释了它出现的情况。您可能在重命名期间遗漏了某些内容,并且未能为应该包含整数的变量赋值,而您稍后会对其进行比较。
  • 除了您的代码之外,完整的堆栈跟踪也会有所帮助。

标签: java nullpointerexception


【解决方案1】:

你可能正在尝试做这样的事情:

Integer i = null;
Integer j = 42;
i.compareTo(j); // throws NullPointerException since i is null

或者这个:

Integer i = 21;
Integer j = null;
i.compareTo(j); // throws NullPointerException since j is null

但您没有显示任何代码。

【讨论】:

    【解决方案2】:

    来自docs

    当应用程序尝试 在对象是的情况下使用 null 必需的。其中包括:

    • 调用空对象的实例方法。
    • 访问或修改空对象的字段。
    • 将 null 的长度视为数组。
    • 访问或修改 null 的槽,就像它是一个数组一样。
    • 将 null 视为 Throwable 值。

    应用程序应该抛出的实例 这个类来指示其他非法的 使用空对象。

    您肯定会遇到其中一种情况。在更高的层次上,您可能调用了一个带有 null 参数的函数(此处为 compareTo()),这会导致函数中出现 NullPointerException。

    也许你有一个 TreeMap,并在地图中插入了一个空值?

    【讨论】:

      【解决方案3】:

      在你 ide 的那一行设置一个断点,看看什么 var 是 null。从那里可以轻松解决。

      【讨论】:

        【解决方案4】:

        你确定当你改变你的方法的名字时,你在任何你调用它的地方都改变了它?有可能出现空指针异常,您的名称键入或拼写不正确。看起来您正在尝试比较两个整数,并且很可能不再正确调用给出其中一个整数的方法。请务必仔细检查。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-05
          • 2021-06-28
          • 1970-01-01
          • 1970-01-01
          • 2014-04-08
          • 1970-01-01
          • 2022-11-14
          • 1970-01-01
          相关资源
          最近更新 更多