schrieb ich ein Stück Code und frage mich, wie ich schreiben kann es eleganter, Bäche mit hier ist sie:Wie schreibe ich es mit Streams? 8 Java
public boolean possibleToAddTask(LocalDate taskDate, final String username) {
List<Task> userTasklist = find(username).getTaskList();
for(Task task : userTasklist) {
if(task.getDate().equals(taskDate)){
return false;
}
}
return true;
}
hier - einige boolean von einer Methode zurückgegeben wird. Wenn angegeben Datum bereits in einiger Aufgabe besteht es falsch gibt, sonst wahr (so den Rückgabetyp beantwortet die Frage in Methode Namen angehoben :))
Ich war mit Filter auf Ströme versucht, aber es funktionierte nur für eine Weile, und dann Unit-Tests gab mir einige unerwartete Ergebnisse, also habe ich es gelöscht und schrieb es wie Its oberen. Jetzt will ich verschönern es
zuvor es so war:
public boolean possibleToAddTask(LocalDate taskDate, final String username) {
List<Task> userTasklist = find(username).getTaskList();
try {
userTasklist.stream().filter(n -> n.getDate().equals(taskDate)).findFirst().get();
return true;
} catch (NoSuchElementException e) {
return false;
}
}
Dank im Voraus :)
Hmm ... Vielleicht ist dies ein bisschen besser, da es die ursprüngliche Logik enger nachahmt. – kuujo
@lusiak Scheint die perfekte Lösung zu sein, aber der Komponententest ist immer noch OK für No-Stream-Lösungen und FAILS für Streams-Lösungen – azalut
Ich weiß wahrscheinlich warum. Negiere einfach, welcher Stream zurückkehrt. –