gpt4 book ai didi

java - java 8 中 for 循环的变化

转载 作者:行者123 更新时间:2023-12-02 02:29:59 27 4
gpt4 key购买 nike

考虑这段代码:

public class Test
{
static final Collection<String> info = new ArrayList<>();

public static void main(String... args) {
for (String info : info) {
System.out.println(info);
}
}
}

它在 java 8 中编译良好,但在 java 7 中会导致编译时错误:

Test.java:8: error: for-each not applicable to expression type
for (String info : info) {
^
required: array or java.lang.Iterable
found: String

我当然不应该写这样的代码。真正的类要大得多,并且该字段的重命名会导致类似这样的结果......

我的问题是:为什么会发生这种情况?语言的哪些演变使得这在 java 8 中合法?我检查了各种 java 8 更改列表,但找不到任何解释此行为的内容。

谁能指出 java 8 中导致此问题的更改吗?

最佳答案

编译器将 info 解释为 String,这就是为什么它不是 Iterable

for循环的范围内,已经存在一个与数组同名的变量

关于java - java 8 中 for 循环的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47261162/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com