2013-05-31 5 views
47

Lambda-Ausdrücke werden in Java 8 hinzugefügt. Ich möchte verstehen, warum dies wichtig ist. Was bedeutet es für einen Java-Programmierer, der noch funktionalen Programmier-Idiomen ausgesetzt ist? Bedeutet das, dass ich Code schreiben kann, der besser funktioniert oder massiv skaliert, oder macht es den Code nur weniger ausführlich? Oder alles davon.Java Lambda-Ausdrücke

+0

Ich nahm eine Klasse über die Organisation von Programmiersprachen, wie mein Professor mir gesagt hat, dass Sie Ihren Code faul machen können. Du auch, ich verstehe das noch nicht, kann "an die Spitze des Berges kommen"? Aber wirklich, es verwirrte die Hölle aus mir heraus, kann es kaum erwarten, die Antworten zu sehen. –

+0

Hmm eine Verwendung, die ich sehen kann, ist die Laufzeitauswahl und die Erstellung von Funktionen. Angenommen, Sie machen etwas mit einem Objekt, und abhängig davon, was Sie getan haben, müssen Sie es an eine von 100 Methoden oder eine Methode mit 100 Wenns übergeben. Mit lambdas können Sie die eine Methode im Handumdrehen ohne Wenns schreiben. – arynaq

+5

'E = hc/λ' !!! Komm schon alter!! – Tdorno

Antwort

38

Oracle hat bereits tutorial über das Thema. Es listet mehrere große Anwendungsfälle auf.

Bevor ich den Link gefunden habe, wollte ich sagen, dass Lambda-Ausdrücke Sie übergeben "Funktionen" zu Code. So können Sie leichter Code schreiben, für den wir früher ein ganzes Durcheinander an Interfaces/abstrakten Klassen benötigten. Angenommen, Sie haben einen Code mit einer komplexen Schleife/bedingten Logik oder einem komplexen Workflow. Bei einem Schritt möchten Sie etwas anderes machen. Mit Lambda-Ausdrücken können Sie einfach "etwas anderes" eingeben. Lesen Sie das Tutorial jedoch. Es ist sehr klar.

+0

Ich habe etwas verwirrt weil dein Gebrauch von Phrase - "* Bevor ich den Link fand, würde ich das * sagen". Nachdem Sie den Oracle-Link gefunden haben, wurde Ihre Meinung geändert. Ich meine, du hast falsch oder "weniger" gedacht und nachdem du diesen Link gelesen hast, hast du erkannt, dass da noch mehr ist. Der Grund, den ich gefragt habe, ist für mich, was früher erwähnt wurde, war richtig und der Kern dieses Links, also möchte ich wissen, ob ich nicht das volle Potenzial von Lambda-Ausdrücken erkannte. – hagrawal

+0

Ich meinte das war meine Sprache. Der Tutorial formuliert es besser –