Methodenreferenzen in Java (Methodenreferenzen in Java), Lektion, Seite 722842
https://www.purl.org/stefan_ram/pub/methodenreferenzen_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Methodenreferenzen in Java 

Methodenausdrücke

Wir setzen die bereits früher schon behandelten Methodenliterale hier als bekannt voraus.

Das folgende Programm zeigt zunächst einen Methodenausdruck, der mit einem Methodenliteral geschrieben ist.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.lang.Runnable runnable = () -> java.lang.System.out.println( "run" );
runnable.run(); }}
transcript
run

Referenzen zu statischen Methoden

Das folgende Programm zeigt eine statische Methodenreferenz.

Main.java

public final class Main
{ public static void block(){ java.lang.System.out.println( "run" ); }

public static void main( final java.lang.String[] args )
{ final java.lang.Runnable runnable = Main::block;
runnable.run(); }}

transcript
run

Ein weiteres Beispiel:

Main.java
public final class Main
{
public static void print( final java.lang.String text )
{ java.lang.System.out.printf
( "%-10s %s%n", text,
javax.lang.model.SourceVersion.isName( text )); }

public static void main( final java.lang.String[] args )
{ java.util.Arrays.asList
( "=", "0", "3d", "int", "true", "x", "alpha", "alpha3", "alpha.beta" ).
forEach( Main::print ); }}
transcript
=          false
0 false
3d false
int false
true false
x true
alpha true
alpha3 true
alpha.beta true
Methodenreferenz 〉 ::=
Klasse 〉 "::" 〈Methodenbezeichner 〉.

Referenzen zu Exemplarmethoden

Das folgende Programm zeigt eine Exemplarmethodenreferenz.

Main.java

public final class Main
{ public void block(){ java.lang.System.out.println( "run" ); }

public static void main( final java.lang.String[] args )
{ final java.lang.Runnable runnable = new Main()::block;
runnable.run(); }}

transcript
run
Methodenreferenz 〉 ::=
Objekt 〉 "::" 〈Methodenbezeichner 〉.

Eine Methodenreferenz ist eine Ausdruck für eine Methode.

Methodenausdruck = Oberbegriff für Methodenliteral und Methodenreferenz

Beispiel mit JavaFX 

Das folgende Programm zeigt die Verwendung von Methodenreferenzen in Zusammenhang mit JavaFX.

Main.java

public final class Main extends javafx.application.Application
{

javafx.scene.control.TextField text = new javafx.scene.control.TextField( "text" );
javafx.scene.control.TextField text1 = new javafx.scene.control.TextField( "text1" );
static javafx.scene.control.TextField text2 = new javafx.scene.control.TextField( "text2" );

public void example( final javafx.event.ActionEvent event )
{ text1.setText( "alpha1" ); }

public static void staticExample( final javafx.event.ActionEvent event )
{ text2.setText( "alpha2" ); }

@java.lang.Override
public void start( final javafx.stage.Stage primaryStage )
{ text = new javafx.scene.control.TextField( "text" );
text1 = new javafx.scene.control.TextField( "text1" );
text2 = new javafx.scene.control.TextField( "text2" );
text.setOnAction( e -> { text.setText( "alpha" ); } );
text1.setOnAction( this::example );
text2.setOnAction( Main::staticExample );

final javafx.scene.layout.VBox vbox = new javafx.scene.layout.VBox();
vbox.getChildren().add( text );
vbox.getChildren().add( text1 );
vbox.getChildren().add( text2 );

final javafx.scene.Scene scene = new javafx.scene.Scene( vbox );

primaryStage.setTitle( "Main" );
primaryStage.setScene( scene );
primaryStage.show(); }}

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722842 stefan_ram:722842 Methodenreferenzen in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722842, slrprddef722842, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/methodenreferenzen_java