java - 代码编译正常,但 JVM 抛出 NullPointerException

标签 java nullpointerexception wrapper

class Boxing2 {

    static Integer x;

    public static void main(String[] args) {
        doStuff(x);
    }

    static void doStuff(int z) {
        int z2 = 5;
        System.out.println(z2 + z);
    }
}

此代码可以正常编译,但 JVM 会抛出 NullPointerException

Exception in thread "main" java.lang.NullPointerException at Boxing2.main(Test.java:4)

我无法找出其中的原因。

最佳答案

x 字段为 null,因此 null 被传递给 doStuff 方法的 x > 参数, 因此,将 null 自动装箱为 int 类型会抛出 NullPointerException

<小时/>

Integer 默认为 null,而 int 默认为 0

关于java - 代码编译正常,但 JVM 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51442623/

相关文章:

java - 如何让我的服务器信任证书?

java - 尝试创建一个结构化数组Java

java - 为什么 Java 编译器允许在三元运算符中将 null 转换为原始类型

webkit - 如何删除div包装器(webkit)内textarea下方的边距

java - 为什么需要同步这个变量

java - Java 中的 LRU 缓存实现

java - 将我的 java 应用程序设置为 Windows 服务

java - Servlet 的 NullPointerException

vue.js - Vue - 如何传递包装器组件内的插槽?

c++ - 包含 map /内容错误的 COM 对象 (0)