2017-10-10 117 views
-4

我對Java很新,並一直試圖弄清楚爲什麼javac在嘗試運行時一直給我一個錯誤。我真的很難過,不明白我的錯誤。這是出現在錯誤消息中的代碼,它是遊戲修改的一部分。Javac非法表達錯誤?

public static LOTRFaction forName(String name) 
    { 
    for (LOTRFaction f :) { 
     if (f.codeName().equals(name)) { 
     return f; 
     } 
    } 
    return null; 
    } 

    public static LOTRFaction forID(int ID) 
    { 
    for (LOTRFaction f :) { 
     if (f.ordinal() == ID) { 
     return f; 
     } 
    } 
    return null; 
    } 
+1

'for(LOTRFaction f:???){' - replace ???與你想要迭代的任何數組/集合。 – Eran

+1

你錯過了你的循環內的東西 – sheplu

+0

我已經低估了這個問題,因爲似乎沒有研究的證據。請[編輯]你的問題,以顯示你所做的研究。 –

回答

0

您收到語法錯誤的原因是您缺少一塊Enhanced for loop。一個增強的for循環需要以下語法:

for (Object my_object : my_object_iterable) { 
    // Do stuff here 
} 

my_object在時間分配給每個值在my_object_iterable之一。這很像Python的for循環使用in關鍵字。 my_object_iterable必須是一個可迭代的對象(Array,List,ArrayList等)並且包含相同類型的my_object。你有一個沒有迭代的for循環! java編譯器不知道你想循環什麼,因爲你沒有提供任何這樣做。