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 ×1