0
的情況下,在java中假設我有下面的代碼片段在java中爲什麼前綴增量或減量運營商並不需要投在字節
byte b = 127;
b=-b ;//(which require a cast due to numeric promotion)
b=++b; //does not require cast
的情況下,在java中假設我有下面的代碼片段在java中爲什麼前綴增量或減量運營商並不需要投在字節
byte b = 127;
b=-b ;//(which require a cast due to numeric promotion)
b=++b; //does not require cast
的++
的JLS規範說:
的類型前綴增量表達式是變量的類型。
....在添加之前,對值1和變量的值執行二進制數值提升(第5.6.2節)。 如有必要,總和通過縮小原始轉換(§5.1.3)和/或受到裝箱轉換(§5.1.7)變量存儲前的變量類型進行縮小。前綴遞減表達式的值是新值存儲後變量的值。
(術語 「基本收縮轉換」 是指一種類型轉換...)
參考:JLS 15.15.1。
因此++b
是byte
並且不需要明確的轉換。