Konkret habe ich TabPane, und ich würde gerne wissen, ob es ein Element mit einer bestimmten ID gibt.Wie überprüft man, ob ein Element mit einem Lambda-Ausdruck existiert?
So würde Ich mag diese in Java mit Lambda-Ausdruck tun:
boolean idExists = false;
String idToCheck = "someId";
for (Tab t : tabPane.getTabs()){
if(t.getId().equals(idToCheck)) {
idExists = true;
}
}
was ist hier besser? Ich sehe nur eine weitere Operation. Tut mir leid, ich bin neu in diesem lamba-Ding. – TecHunter
@TecHunter ist es expliziter. Stellen Sie sich vor, Sie lesen diesen Code zum ersten Mal oder nach einer Weile. Es gibt mehrere Vorteile: Zunächst zeigen wir sofort, dass wir uns eigentlich nicht für den Tab interessieren, sondern für ein Mapping. Zweitens zeigen wir, indem wir Methodenverweise verwenden (was nur möglich ist, weil wir das ursprüngliche Lambda in zwei Schritte aufteilen), dass im Code keine Überraschungen versteckt sind. Drittens, indem wir Methodenverweise verwenden, erstellen wir kein neues Prädikat, sondern verwenden einfach 'equals'. Obwohl das Beispiel hier sehr einfach ist, hoffe ich, dass Sie verstehen, was ich meine. –
@MalteHartwig danke! Ja, ich bekomme deine 3 Punkte, aber ich fragte nach der Abflachung mit 'map', es macht einen weiteren Verarbeitungsschritt nein? Ich werde versuchen, die 2 Methoden zu vergleichen :) – TecHunter