Ist es möglich, eine Java-Methode statisch zu reflektieren?

9

Gibt es eine Möglichkeit, eine Methode zur Reflexion in Java statisch zu referenzieren? Hier ist ein Beispielcode, um Ihnen eine Vorstellung davon zu geben, was ich versuche:

%Vor%

Ich erkenne, dass die obige Syntax nicht funktioniert, aber ich frage mich, ob es eine ähnliche Syntax gibt, die tatsächlich funktioniert. Ich möchte eine Möglichkeit, Reflektion zu verwenden, ohne sich Gedanken über die inhärenten Gefahren machen zu müssen, wenn man eine Methode mit einem String referenziert.

Gibt es eine Möglichkeit, dies zu tun, oder ist es nur ein Rohrtraum?

    
Viper Bailey 25.11.2012, 19:25
quelle

2 Antworten

4

Methodenreferenzen erklärt

  

Diese Methode zum Vergleichen der Geburtsdaten zweier Personenexemplare existiert bereits als Person.compareByAge . Sie können diese Methode stattdessen im Rumpf des Lambda-Ausdrucks aufrufen:

%Vor%      

Da dieser Lambda-Ausdruck eine bestehende Methode aufruft, können Sie eine & gt; Methodenreferenz anstelle eines Lambda-Ausdrucks:

%Vor%

und es erklärt die verschiedenen Arten von Methodenreferenzen:

  

Es gibt vier Arten von Methodenreferenzen:

%Vor%

HISTORISCHER HINWEIS (geschrieben vor Java 8 wurde fertiggestellt)

Ich denke, der Java-Closures-Vorschlag hat so etwas. Stephen Colebourne sagt:

  

Stefan und ich freuen uns, die Veröffentlichung von v0.4 des Verfahrens First-Class Methods: Java-style closures bekannt zu geben.

     

Änderungen

     

Seit v0.3 haben wir versucht, einige der erhaltenen Rückmeldungen in die verschiedenen Foren zu integrieren. Die wichtigsten Änderungen sind wie folgt:

     

1) Konstruktor- und Feldliterale. Es ist jetzt möglich, typsichere, während der Kompilierung geänderte Instanzen von java.lang.reflect.Constructor und Field mithilfe der FCM-Syntax zu erstellen:

%Vor%

, aber ich denke nicht, dass diese Syntax in jeder Versand-JVM verfügbar ist. Closures selbst sind definitiv nicht in Java 7. Sie können es in Java 8 sehen.

Die Java-Closures-Website enthält einen Zeiger auf "Method references , das ein wenig aktueller ist, obwohl es nicht so aussieht, als hätten sie die Syntax viel geändert.

    
Mike Samuel 25.11.2012, 20:00
quelle
-2

JSR-335 ist, was Sie suchen. Hoffentlich wird es in JDK 8 verfügbar sein.

    
yegor256 25.11.2012 20:02
quelle

Tags und Links