-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'是無關緊要的。 –