也许是一个简单的问题,但我被困住了。
为什么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
}
答案 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循环中,因此编译器会抱怨它(我无法解析为变量
所以删除;