Java 10 Proposals

Verbesserungen für Lambda-Expressions

| Autor / Redakteur: Thomas Drilling / Stephan Augsten

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)

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.

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.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44502576 / IDEs & Programmiersprachen)