如何允许将整数分配给 Java 包装类



以下代码如何合法,这到底有什么作用?

int i = new Integer(5);

根据 Java 语言规范,

§5.2 赋值上下文

分配上下文允许使用以下方法之一:

  • 身份转换 (§5.1.1(
  • 扩大的原始转换 (§5.1.2(
  • 拓宽参考转换 (§5.1.5(
  • 装箱转换 (§5.1.7( 后跟加宽参考转换(可选(
  • (
  • 可选(进行拆箱转换 (§5.1.8(,然后是加宽的原始转换。

您的代码演示了从Integerint的拆箱转换。语言规范说它是允许的,所以它是允许的,否则你不使用Java。

有关什么是拆箱转换的更多信息,请访问此处。总而言之,它基本上是从引用类型转换为其原始对应类型。在这种情况下,Integer是引用类型,int是基元类型。

最新更新