4
在我的IDE中工作時,我發現了一些相當奇怪的東西。涉及鑄造的奇怪編譯錯誤
double x1 = 0, x2 = 0;
int a = (int) x1 = (int) x2;
所以這是無效的語法,毫不奇怪。但是,這是的解釋,爲什麼這是無效的語法,讓我困惑。當我把這個代碼在Eclipse露娜和懸停在第二行,會出現一個消息,說:
類型不匹配:不能從布爾值轉換爲int
1可快速修復:
變化的「a」到「布爾」類型
如果我忽略該錯誤並繼續到反正運行,即使是Throwable的棧跟蹤顯示相同的消息:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Type mismatch: cannot convert from boolean to int
Syntax error on token "=", <= expected
我不明白爲什麼編譯器認爲(int) x1 = (int) x2
是某種比較,評估結果爲true
或false
。有沒有人有這樣的想法?
那麼,這需要一段時間才能被javac執行,並且錯誤是不同的:*意外類型,必需:變量found:value *。 –
我可以看到從哪裏來。你認爲這是一個Eclipse特有的錯誤? – TNT
是的。在處理奇怪的編譯器異常錯誤時,嘗試先用javac編譯代碼,它將提供*更好的*編譯錯誤消息。 –