IntelliJ schlägt vor, ersetzen Sie die while-Schleife mit einer for each-Schleife. Warum?
ArrayList<Object> list = new ArrayList<Object>();
list.add(12);
list.add("Hello");
list.add(true);
list.add('c');
Iterator iterator = list.iterator();
while(iterator.hasNext())
{
System.out.println(iterator.next().toString());
}
Wenn ich diese Java-code in IntelliJ IDEA, code-Analyse-feature deutet darauf hin, dass ich ersetzen die while-Schleife mit einer for-each-Schleife, da bin ich zu iterieren über eine collection. Warum ist das so?
- Wenn Sie verwenden einen Iterator, wie wenn Sie die remove () - Methode können Sie nicht gewinnen, so oder so. In diesem Fall, in der for-Schleife, es heißt "for-Schleife fehlt-update'. Ich mag code-Inspektion, aber ich find allgemein IntelliJ ist unhelpfully laut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, was Sie will, Sie zu nutzen:
Wurde dies in der Sprache, die seit Java 1.5, und ist die idiomatische Muster. Sie müssen den Iterator nur, wenn Sie benötigen Zugriff auf den iterator ' s andere Methoden (D. H.
remove()
).Weil Sie sind weniger wahrscheinlich, Fehler zu machen und es sieht besser aus ; )
weil Sie die Inspektion der Sprache Java Migration Aids - 'while' - Schleife ersetzbar mit "for each" aktiv (das ist der Standard), die Beschreibung ist
also, wenn Sie wollen nicht gesagt werden, diese dann deaktivieren Sie das Feld, in dem Inspektionen config
Die foreach-Schleife ist kürzer zu schreiben und somit leichter zu Lesen.