Java:for-each-loop中的“Anonymous”数组

2022-09-01 04:11:15

当我在for循环中尝试一些特殊的东西时,我意识到Java似乎不喜欢将匿名数组作为for-each-loop的源代码:

for (String crt : {"a","b","c"} ) {
    doSomething();
}

实际上不起作用,而

String[] arr = {"a","b","c"};
for (String crt : arr ) {
    doSomething();
}

确实如此。

即使将数组转换为 String[] 也无济于事。当将光标移到第一个版本上时,eclipse告诉我:

Type mismatch: cannot convert from String[] to String虽然意思是“crt”。

这是一个错误吗?


答案 1

这将工作:

for (String crt : new String[]{"a","b","c"} ) {
    doSomething();
}

答案 2

Java 语言将表单作为快捷方式提供,但只有在赋值期间才有可能。这可能是为了避免在解析过程中可能出现的歧义,在某些位置可以解释为代码块。{"a","b","c"}{}

正确的方法是诺亚建议的,用.new String[]{"a","b","c"}