Object arr = new int[]{1,2,3};
arr = (int[])arr;
int someArr [] = (int[])arr;
for(int i:arr) // compilation error
System.out.println(i);
for(int i:someArr) //works fine
System.out.println(i);
2 行目のキャストで arr が int 配列に変換されないのはなぜですか? 4行目で「配列またはインスタンスのみを反復処理できます」というコンパイルエラーが発生しますjava.lang.Iterable
。デバッグ中、2 行目で、変数 snapshot はインデックス付きの値で arr を示します。