2017-10-10 115 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编译器不知道你想循环什么,因为你没有提供任何这样做。