Java 在哪里可以使用拳击

Java 在哪里可以使用拳击,java,Java,我在书中看到了这个例子,作者试图讲述拳击的用法。我在理解最后几行时遇到了问题,即“代码在试图调用doStuff(x)时抛出异常,因为x没有引用Integer对象。”我不理解为什么x不是Integer包装类的对象。好像,我以前将其定义为静态整数x。是否该x变量不是整数包装类的引用。此外,为什么它会抛出“NullPointerException?”当您的代码运行并调用doStuff(x)时,x是null,因为您尚未初始化它。编译器将生成调用x.intValue()的字节码,以将int传递给您的方法。


我在书中看到了这个例子,作者试图讲述拳击的用法。我在理解最后几行时遇到了问题,即“代码在试图调用doStuff(x)时抛出异常,因为x没有引用Integer对象。”我不理解为什么x不是Integer包装类的对象。好像,我以前将其定义为静态整数x。是否该x变量不是整数包装类的引用。此外,为什么它会抛出“NullPointerException?”

当您的代码运行并调用
doStuff(x)
时,
x
null
,因为您尚未初始化它。编译器将生成调用
x.intValue()
的字节码,以将
int
传递给您的方法。由于
x
null
,因此将得到一个
NullPointerException
整数作为引用类型,类型为
Integer
的变量可以包含
null
或对
整数
对象的引用。他们只是想说,如果
x
为空,就不能将其转换为
int

我不明白为什么x不是整数包装类的对象

因为
x
从未初始化,所以它具有默认值:
null

此外,它为什么抛出“NullPointerException?”

因为要将
整数
转换为
整数
:它调用。但是没有实例,所以这就像尝试这样做:

Integer x = null;
int someInt = x.intValue();
…这应该很明显



自动拆箱涉及的步骤,包括此NPE行为在Happy reading中指定

你的帽子真棒。哦,该死的,我也得到了。