无法解析for循环中的变量

时间:2015-04-27 12:38:19

标签: java dictionary

也许是一个简单的问题,但我被困住了。 为什么i无法解析为变量?

Map<Integer, String> testMap = new HashMap<>();

List<Integer> integers = new ArrayList<>();

for(Integer i : integers);
{
    String str = testMap.get(i); //i cannot be resolved to a variable
}

3 个答案:

答案 0 :(得分:5)

你要在{}块之前用;结束for循环,所以我不再在范围内了。

更改

for(Integer i : integers);
{
    String str = testMap.get(i);
}

for(Integer i : integers)
{
    String str = testMap.get(i);
}

答案 1 :(得分:4)

删除分号

for(Integer i : integers)

因为分号不允许您的代码在循环中执行。

答案 2 :(得分:3)

for(Integer i : integers);
{
    String str = testMap.get(i); //i cannot be resolved to a variable
}

末尾的分号(;)表示声明的结尾。这类似于

for(Integer i : integers)
{

}
{
    String str = testMap.get(i); //i cannot be resolved to a variable
}

正如您所看到的,i已经不在for循环中,因此编译器会抱怨它(我无法解析为变量

所以删除;