Also habe ich eine Liste und für jedes Element in der Liste muss ich "etwas tun" basierend auf jedem Listenelement.Java 8 - Verschachtelt wenn innerhalb einer Schleife
Die Liste besteht aus Codes und es gibt insgesamt 5 Codes. Die Liste kann einige oder alle Codes enthalten.
Bisher habe ich die forEach verwendet und ich habe das, wenn die Bedingungen im Inneren wie unten geschrieben -
List<Category> categories = getCategories();
categories.stream().forEach(category -> {
if(category.equals(Category.A)) {
// do something
} else if(category.equals(Category.B)) {
// do something
} else if(category.equals(Category.C)) {
// do something
} else if(category.equals(Category.D)) {
// do something
} else if(category.equals(Category.E)) {
// do something
}
});
Ich bin bei Refactoring diese suchen. Kann jemand bitte schauen, wie das besser gemacht werden kann?
In eine Methode 'void doSomething()', die jede Kategorie überschreibt und dann einfach 'category.doSomething()' schreibt, kann man '// etwas tun' setzen. – luk2302
Erstellen Sie eine Loopkup-Tabelle. Siehe [diese Frage] (https://stackoverflow.com/questions/4480334/how-to-call-a-method-stored-in-a-hashmap-java) für Informationen. – pritaeas
Welcher Vergleich ist 'category.equals (Category.A)'? – nullpointer