gpt4 book ai didi

java - 允许空值装箱,那么为什么不允许拆箱呢?

转载 作者:太空宇宙 更新时间:2023-11-04 06:55:52 25 4
gpt4 key购买 nike

我正在阅读jls §5.1.7上面说装箱有9种类型,第9种是装箱从空类型到空类型

然后我读到 Unboxing Conversion null 抛出 NullPointerException。好吧,这是显而易见的。 那么为什么装箱null不会抛出NullPointerException以及装箱null值有什么用?

最佳答案

null 转换为 Integer 不会抛出 NullPointerException,因为 null 对于任何引用都是有效值,例如:整数 intObject = null;//很好

但是,您不能这样做:

int intPrimitive = intObject;//不太好

因为当您尝试将 Integer 转换为 int 时,会在幕后调用 Integer.intValue(),但在 null 引用上调用任何方法都会引发 NPE:

Object whatever = null;
whatever.anyMethod(); // always throws NPE

因为引用指向null,而不是所选类型的实际对象。

关于java - 允许空值装箱,那么为什么不允许拆箱呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22755086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com