小编Lal*_*ith的帖子

赋值上下文中的Java原始转换Long和int

Long ll = 102; // Error
Byte bb = 101; // No error
Run Code Online (Sandbox Code Playgroud)

为什么在Long赋值正常的情况下赋值会导致编译时错误Byte

Long ll = 102导致编译器错误"类型不匹配:无法从int转换为Long".我假设编译器将加宽102到long然后框到Long.但它没有发生.

但是Byte bb = 101;不会产生编译器错误.在这里我猜,101缩小为byte(非长积分常数),然后装箱Byte.当缩小没有问题时,扩大的问题是什么?

java

19
推荐指数
3
解决办法
2638
查看次数

标签 统计

java ×1