コレクションまたは配列を反復処理し、拡張 for ループ (foreach 反復構文) に自動的に置換できる for ループを報告します。

例:


  for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) {
    String item = iterator.next();
    System.out.println(item);
  }

クイックフィックス適用後:


  for (String item : list) {
    System.out.println(item);
  }

list.get(index) の呼び出しを含むループを検出するには、「インデックス付きの 'java.util.List' ループを報告する」オプションを使用します。 このようなループは多くの場合、list.remove(index) の呼び出しなどでプロセスの基になるリストを変更しない限り、拡張 for ループに置換できます。 後者の場合、拡張 for ループが ConcurrentModificationException をスローする可能性があります。 また、場合によっては list.get(index) ループの処理が若干高速になります。

型パラメーターのないコレクションを無視するには、「型指定されていないコレクションに対して反復を報告しない」オプションを使用します。 これにより、java.lang.Object 型の拡張 for ループ変数の作成と、ループ変数が使用されるキャストの挿入を防ぐことがます。