【发布时间】:2015-01-11 23:35:21
【问题描述】:
我可以隐式地将 int 转换为 long 并将 long 转换为 Long。为什么不能将 int 隐式转换为 Long?为什么Java不能在例子的最后一行做隐式转换?
int i = 10; //OK
long primitiveLong = i; //OK
Long boxedLong = primitiveLong; //OK
boxedLong = i; //Type mismatch: cannot convert from int to Long
【问题讨论】:
-
这是因为自动装箱从它的
Object到它的原始类型是一对一的关系。 -
可能没有真正的原因,只是语言设计者决定不支持它。你可以让它与
boxedLong = (long)i一起工作。
标签: java