Suchen

Java 10 Proposals Verbesserungen für Lambda-Expressions

| Autor / Redakteur: Dipl. -Ing. Thomas Drilling / Stephan Augsten

Ein weiteres neues JDK Enhancement Proposal (JEP 302) für Java 10 schlägt Verbesserungen (JEP) der Lambda Expressions in Java vor, neben der Verwendung von Underscores auch eine bessere Disambiguierung für funktionale Ausdrücke.

Firmen zum Thema

JEP 302 befast sich mit Vorschlägen zur Verbesserung der Möglichkeiten mit Lambda-Expressions.
JEP 302 befast sich mit Vorschlägen zur Verbesserung der Möglichkeiten mit Lambda-Expressions.
(Bild: OpenJDK)

Neben dem bereits vielfach diskutierten JEP 11 mit Vorschlägen, Inkubator-Module in den künftigen Java-Release-Prozess zu integrieren, befasst sich das JEP 302 mit dem Titel „Lambda Leftovers“ von Maurizio Cimadamore – er ist Consulting Member des Technical Staffs bei Oracle – mit Verbesserungsvorschlägen, die sich auf Lambda-Ausdrücke beziehen.

Die Sprache kennt seit der Version 6 sogenannte Lambda Expressions. Sie erweitern Java um Konzepte der funktionalen Programmierung. Offenbar sieht Cimadamore hierbei noch Luft nach oben. Kämen seine Vorschläge zur Umsetzung, würde sich die Lambda-Verwendung in Java der in anderen Sprachen deutlich annähern. Konkret geht es um drei Vorschläge für Java 10:

Verbesserte Disambiguierung von Lambdas

Die bereits in Java 8 überarbeitete Overload-Resolution erlaubt zwar deutlich weiterreichende Interaktionen mit der Typen-Inferenz, nach Ansicht von Cimadamore hat man aber bisher die prinzipielle Möglichkeit, den Lambda-Typ beim Kompilieren abzuleiten, nicht umgesetzt, bzw. vollständig ausgeschöpft. In Java 10 sollen erweiterte Disambiguitäts-Checks dazu beitragen, dass der Compiler Lambda-Typen ableiten kann, sofern Kontext hinreichend Informationen liefert.

Underscores

Vielen Sprachen unterstützen den Underscore „_“ zur Kennzeichnung unbenannter Lambda-Parameter. JEP 302 schlägt vor, den Unterstrich auch in Java zu diesem Zweck zu nutzen. Dabei könnte der Underscore unter anderem zum Kennzeichnen ungenutzter Methoden-Parameter verwendet werden.

Lambda Shadowing

Da Parameter von Lambda-Ausdrücken in Java 8 nicht die gleichen Namen verwenden dürfen, wie Variablen in dem sie umgebenden Scope, verhalten sich Lambdas bisher eher wie while-Schleifen oder if-Konstrukte. Das JEP 302 schlägt vor, diese Einschränkung aufzuheben, um damit eine Art „Shadowing of lambda parameters/ zu erlauben.

(ID:44502576)

Über den Autor

Dipl. -Ing. Thomas Drilling

Dipl. -Ing. Thomas Drilling

IT-Consultant, Trainer, Freier Journalist