1
爲表達的結果分配一個值時,這樣做是Java爲什麼在用byte添加int時需要顯式轉換?
byte = 27 // 27 treated as int; implicit cast to byte
合法但Java要求明確鑄造
int a = 9;
byte b = 8;
byte c = a + b; // Compile error
這背後的原因是什麼?
爲表達的結果分配一個值時,這樣做是Java爲什麼在用byte添加int時需要顯式轉換?
byte = 27 // 27 treated as int; implicit cast to byte
合法但Java要求明確鑄造
int a = 9;
byte b = 8;
byte c = a + b; // Compile error
這背後的原因是什麼?
27
是一個文字。編譯器知道它可以在byte
(從-128到127)中表示。
a + b
是一個涉及變量的表達式。其結果可能不能代表byte
這是一個很好的答案。因爲我嘗試了字節c = 9 + 8,它工作。謝謝 – Kode
對編譯器來說,這僅僅是'c = 17'。 – manouti