Atm*_*ons 36 java arrays foreach
当我在for循环中尝试一些特殊的东西时,我发现Java似乎并不喜欢将一个匿名数组作为for-each-loop的源代码:
for (String crt : {"a","b","c"} ) {
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
实际上不起作用
String[] arr = {"a","b","c"};
for (String crt : arr ) {
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
确实.
即使将数组转换为String []也无济于事.将光标移到第一个版本上时,eclipse告诉我:
Type mismatch: cannot convert from String[] to String 而意思是"crt".
这是一个错误吗?
noa*_*oah 66
这将有效:
for (String crt : new String[]{"a","b","c"} ) {
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
Tom*_*tle 20
Java语言将{"a","b","c"}表单作为快捷方式提供,但只能在赋值期间使用.这可能是为了避免解析过程中可能出现的歧义,在某些位置{}可能会被解释为代码块.
正确的做法是诺亚建议的方式new String[]{"a","b","c"}.