我有一個練習,涉及到「instanceof
」,我不太清楚如何使用它。這是我想出了:語法錯誤的實例?
for(int i = 4; i < 6; i++){
int availSupply = part[i].stockLevel+part[i].getAvailForAssembly();
if(availSupply instanceof Integer){
System.out.println("Total number of items that can be supplied for "+ part[i].getID()+"(" + part[i].getName() + ": "+ availSupply);
}
}
代碼看起來沒什麼問題,但它想出了一個錯誤:
Multiple markers at this line
Incompatible conditional operand types int and Integer at: if(availSupply instanceof Integer){
我不知道我做錯了什麼,它是唯一的出現錯誤。
你爲什麼要檢查int與instanceof? – ravi
'int'是一個原始數據類型,而Integer是一個類。 'instanceof'運算符不適用於原始數據類型。你應該將'availSupply'變量聲明爲Integer。 [原始數據類型](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html)[Java包裝類](http://www.w3resource.com/java-tutorial/java- wrapper-classes.php) – AndrewMcCoist
新生學習Java的提示:不要認爲你還沒有完全研究過的概念......是「好的」,因爲「它們看起來很好」。在編程中,沒有看起來很好的東西。編譯器是確定性的;他們分析源代碼;當一個編譯器給你一個錯誤信息時,那麼好看並不重要。在這種情況下,要做的事情是仔細閱讀錯誤信息,並可能會打開一本書,並研究指出將更詳細地使用錯誤的概念。 – GhostCat