【发布时间】:2019-01-08 15:59:44
【问题描述】:
为什么会报错
int i=123;
byte b=i;
但在这种情况下不是
final int i=123;
byte b=i;
【问题讨论】:
-
@Turamarth 很好发现!那里的答案也解释了这一点。
-
但是变量都是字节类型而不是int
-
@alia 是的,但解释是一样的。
-
@alia 没关系。关键部分是您可以将非最终 int 更改为对于字节而言太大的东西。只有使 int final 会向编译器显示 int 将适合字节。另一个问题只是将一个大 int 替换为两个较小的字节相加。
-
@alia 如前所述,它与
int是否适合byte有关。看到这个设置final int i大于127(byte的最大值)或小于-128(byte的最小值),您将再次遇到编译错误。
标签: java