Java 将基元int强制转换为数字

Java 将基元int强制转换为数字,java,casting,primitive,Java,Casting,Primitive,假设我有以下几点: int a = 2; Number b = (Number) a; System.out.println(b); // Prints 2 表示不能将基元值强制转换为引用类型。Java是否知道从基元int创建一个整数,然后将其转换为超类?Java在幕后是如何处理这个问题的?谢谢 该过程被调用。简而言之,编译器发现需要一个包装器(Integer)而不是一个原语(int),并自动添加转换。事实上,你不需要对号码进行强制转换

假设我有以下几点:

int a = 2;
Number b = (Number) a;

System.out.println(b); // Prints 2
表示不能将基元值强制转换为引用类型。Java是否知道从基元int创建一个整数,然后将其转换为超类?Java在幕后是如何处理这个问题的?谢谢

该过程被调用。简而言之,编译器发现需要一个包装器(
Integer
)而不是一个原语(
int
),并自动添加转换。事实上,你不需要对
号码进行强制转换