2016-04-23 130 views
-2

我已经寻遍谷歌,但并没有发现任何修复...下面的代码:语法错误,无效AssignementOperato

public Command getCommandbyAlias(String alias) 
{ 
    int length; 
    int i; 
    for (Iterator localIterator = getCommands().iterator(); localIterator.hasNext(); i < length) //Here, at i < length 
    { 
     Command cmd = (Command)localIterator.next(); 
     String[] alias2; 
     length = (alias2 = cmd.getAlias()).length; 
     i = 0; 
     continue; 

     String aliases = alias2[i]; 
     Utils.addChatMessage(aliases); 
     if (aliases.equalsIgnoreCase(alias)) { 
      return cmd; 
     } 
     i++; 
    } 
    return null; 
} 
+4

你的第三个参数'for'是一个比较,这没有任何意义。 – Siguza

回答

0

如果你想在你for声明两个条件,你应该使用&&布尔运算符将它们加入到一个条件:

for (Iterator localIterator = getCommands().iterator(); 
    localIterator.hasNext() && i < length) { 

注意,顺便说一下,你应该初始化ilength尝试之前使用它们。你目前的代码没有。

+0

谢谢。我会尝试一些初始化它们,因为它们已经在for循环中了=) – Fabio

1

在你的第三个参数的循环是不正确。我猜你想是这样的:

for (Iterator localIterator = getCommands().iterator(); localIterator.hasNext() && i < length;) 
1

oracle doc小号

for (initialization; termination; 
    increment) { 
    statement(s) 
} 

第三arguement保留用于递增/递减语句,如果你感到困惑它是可选

关于使用for循环,然后去while按照以下代码

Iterator localIterator = getCommands().iterator(); 
while(localIterator.hasNext() && i < length) 

{ 
    Command cmd = (Command)localIterator.next(); 
    String[] alias2; 
    length = (alias2 = cmd.getAlias()).length; 
    i = 0; 
    continue; 

    String aliases = alias2[i]; 
    Utils.addChatMessage(aliases); 
    if (aliases.equalsIgnoreCase(alias)) { 
     return cmd; 
    } 
    i++; 
} 
0

试试这个:

public Command getCommandbyAlias(String alias) 
{ 
    int length; 
    int i; 
    Iterator localIterator = getCommands().iterator(); 
    while (localIterator.hasNext() && i < length) 
    { 
     Command cmd = (Command)localIterator.next(); 
     String[] alias2; 
     length = (alias2 = cmd.getAlias()).length; 
     i = 0; 
     continue; 

     String aliases = alias2[i]; 
     Utils.addChatMessage(aliases); 
     if (aliases.equalsIgnoreCase(alias)) { 
      return cmd; 
     } 
     i++; 
    } 
    return null; 
}