我現在的儲蓄,當我試圖編譯它後嘗試一些Java代碼這樣的數據類型字節不允許添加任何文字
class Test {
public static void main (String [] args){
byte b = 10;
b = b + 10;
}
}
,它給我一個錯誤
D:\java\Test.java:4: possible loss of precision
found:int required:byte b = b + 10; ^ 1錯誤
但是沒有如果嘗試這樣的事情
b++;
b+=10;
這是完全正常的 是什麼原因?
[why byte + = 1 compile but byte = byte + 1 not?]的可能重複(http://stackoverflow.com/questions/4969339/why-byte-1-compile-but-byte-byte-1 - 不) – axtavt 2012-04-25 07:36:19
這只是一個近似重複的這個問題。另一個問題是「什麼在Java語言定義導致這種行爲?」,而這個問題是「這種行爲的原因是什麼」,要求動機的語言定義。 – 2012-04-25 07:42:51