Java 8 – Functional Interfaces

Ich bin mir oft nicht sicher, ob der Hype um das Thema funktionale Programmierung übertrieben ist, doch ich habe erlebt, dass einige Operationen kürzer, schneller und übersichtlicher implementiert werden können und beispielsweise mit parallelen Streams auch noch schneller verarbeitet werden können – vorausgesetzt eine parallele Verarbeitung ist möglich. Zudem denke ich, dass kein Entwickler, wirklich um ein grundsätzliches Verständnis der funktionalen Programmierung drum herum kommt, da viele Kunden und Auftraggeber häufig von Buzzwords getrieben sind und der Meinung sind, dass eine moderne Software auf einem funktionalen Programmieransatz beruht – ich sehe dies wie viele meiner Kollegen etwas anders, die sagen…“Kommt drauf an“…

Doch nun genug Stimmungsmache ;-):

Im ersten Code-Snippet werden wir mit Hilfe der neuen default-Implementierung einer forEach-Methode aus dem allgemein bekannten Iterable-Interface:

In dem ersten Beispiel im Kontext Java 8 wird über eine Liste von Strings iteriert und die Char-Sequence ausgegeben. Dazu habe ich hier ein Github-Repository mit den Beispielen angelegt, über die wir hier sprechen werden. Betrachtet wird die Klasse Java_8_Class_1. Bisher verwendeten wir die in Java 1.5 eingeführte extended-Loop:

Das Interface Iterable bringt nun die forEach Methode mit, die als Parameter ein Consumer<T> als Parameter erwartet:

Die Ausgabe von Java_8_Class_1 sollte wie nachfolgend dargestellt sein:

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.