-2
当我尝试使用autobox i2
到Byte
时没有错误,但是当我做反之亦然时(b1
到Integer
),则会发生错误。为什么在自动装箱期间最终字节变量不能转换为整数?
final byte b1 = 1;
Integer i1 = b1; //error
final int i2 = 1;
Byte b2 = i2;// no error
byte b3 = 1;
int i3 = b3; // no error
我觉得解释是[这个答案](https://stackoverflow.com/a/45105159/905488)。我不明白变量是“最终”如何有所作为。 –
@MickMnemonic'final'在第二个例子中很重要,因为它使'i2'成为一个常量表达式。 – Radiodef
@Radiodef,但OP特别询问第一次转换,其中'final'是无关紧要的。 –