-2

我在 Eclipse (Photon 4.8) 中遇到了一个非常奇怪的问题。我有一些使用 for (Object x : ObjectList){} 逻辑的代码,突然之间它向我抛出了编译错误。

Can only iterate over an array or an instance of java.lang.Iterable

为了保持超级简单,我在课堂上写了以下内容作为测试

ArrayList<String> tmp = new ArrayList<String>();
tmp.add("making sure there's something here");
tmp.add("and again...just for the heck of it");
for(String x : tmp) {
    System.out.println(x);
}

该块也会引发相同的错误(在“tmp”对象上)。我已经多次重新启动 Eclipse 并完成了清理/重建。我的 Java 编译器设置为 1.8,这是我大约一周前从 1.6 所做的更改。但它在过去一周编译得很好,没有错误。今天突然看到这个突然出现。

似乎是 Eclipse 编译器中的一个错误,但我不确定如何解决它。任何帮助将不胜感激。

在下面添加“最小、完整和可验证的示例”

public class Test { 
    public static void main(String[] args) {
        java.util.ArrayList<String> tmp = new java.util.ArrayList<String>();
        tmp.add("String 1");
        tmp.add("String 2");
        for(String x : tmp) {
            System.out.println(x);
        }
    }
}

上面的类为“tmp”抛出以下编译错误

Can only iterate over an array or an instance of java.lang.Iterable
4

1 回答 1

2

您不需要定义新的迭代器:

ArrayList<String> tmp = new ArrayList<String>();
tmp.add("making sure there's something here");
tmp.add("and again...just for the heck of it");
for(String x : tmp) {
    System.out.println(x);
}

>> making sure there's something here
>> and again...just for the heck of it
于 2019-02-18T13:48:12.037 回答