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 から約 1 週間前に行った変更です。しかし、過去 1 週間はエラーなく正常にコンパイルされています。今日、突然このポップアップが表示されました。
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