Frage

    

Diese Frage bereits eine Antwort hier:

    
            
  •              Closure in Java 7 [geschlossen]                                      7 Antworten                          
  •     
    

Ich habe gehört, dass Schließungen in den nächsten Java-Standard eingeführt werden könnten, die sich um den nächsten Sommer geplant ist irgendwo veröffentlicht werden.

Was würde diese Syntax aussehen?

ich irgendwo gelesen, dass Verschlüsse in Java-Einführung eine größere Änderung ist als Gattungs in Java war 5. Ist das wahr? Vor-und Nachteile?

(Inzwischen wissen wir definitiv, dass Schließungen werden nicht in der nächsten Java-Release enthalten sein)

oder

Bearbeiten: http://puredanger.com/ tech / 2009/11/18 / Schließungen-after-alle / : D

edit2: Re-Denken JDK7: http://blogs.oracle.com/ mr / entry / rethinking_jdk7

EDIT3: Es gibt keine Zeit zu verlieren !: http://blogs.oracle .com / mr / entry / Quartett

War es hilfreich?

Lösung

Hier finden Sie aktuelle http://www.javac.info/ .

Es ist wie das scheint, wie es aussehen würde:

boolean even = { int x => x % 2 == 0 }.invoke(15);

, wo die { int x => x % 2 == 0 } Bit ist die Schließung.

Andere Tipps

Es hängt wirklich davon ab, was eingeführt wird, und in der Tat ob es wird überhaupt eingeführt werden. Es gibt eine Reihe von Verschluss Vorschläge unterschiedlicher Größe.

Siehe Alex Miller Java 7 für die Vorschläge und verschiedenen Blog-Posts.

Persönlich würde ich lieben Schließungen zu sehen - sie sind schön und unglaublich hilfreich - aber ich fürchte, dass einige der Vorschläge ziemlich behaart sind

.

Im November 2009 gibt es eine überraschende Kehrtwende zu diesem Thema, und Verschlüsse werden nun hinzugefügt Java 7.

Update

Verschlüsse (AKA lambdas Ausdrücke) in Java 7 nicht geschehen. Sie waren schließlich hinzugefügt in der ersten Version von Java 8 im Jahr 2014.

Unofortunately werden Sie nicht Schließung in Java 7 finden, wenn Sie für eine leichtere Lösung suchen Schließung in Java haben gerade jetzt das lambdaj Projekt finden Sie unter:

http://code.google.com/p/lambdaj/

Dies ist die Java-7-Features http://tech.puredanger.com/java7/#switch die Beispiele sind sehr nützlich.

Beachten Sie, dass ein „Funktionstyp“ ist wirklich eine Art unter dem Vorschlag:

{int => boolean} evaluateInt;    //declare variable of "function" type
evaluateInt = {int x => x % 2 }; //assignment

Ich denke, es ist noch viel Debatte hinsichtlich gehen in dem, was Syntax wird letztlich verwendet werden. Ich würde eigentlich ziemlich überrascht, wenn das macht es in Java 7 aufgrund all das.

Schließungen annoyinglly umfangreich sein, wenn es keine Art von Typinferenz sein wird ...: (

Verschlüsse haben einige ernsthafte Grenzfälle. Ich würde sagen, dass Closures eine viel bedeutendere Veränderung als Generika sind und die später noch eine Reihe haarige Grenzfälle. z.B. Die Java Collections-Bibliotheken können nicht ohne Warnungen geschrieben / kompiliert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top