在下面的代码中:
final int a;
a=2;
byte b=a; // error: possible loss of precision
我为什么会遇到这个错误?a
不是一个final变量的编译时常量表达式吗,在赋值期间隐式缩小为byte?
换句话说,上面的代码不等同于:
final int a=2;
byte b=a;
1
、2
、4
等非常敏感。这个答案中的情况显然是无法解决的,因为从random
返回的值取决于程序启动的时间。 - LyingOnTheSky