Latest web development tutorials

Java 8 Methode Referenzen

Java 8 neue Funktionen Java 8 neue Funktionen


Das Verfahren, mit dem Methodennamen verwiesen auf ein Verfahren zu zeigen.

Das Verfahren zur Referenzkonfiguration kann kompakter und prägnante Sprache gemacht werden, redundanten Code zu reduzieren.

Methode verweist auf ein Paar Punkte (: :).

Wir haben im Folgenden vier Methoden Car-Klasse als Beispiel definieren, unterstützt die Unterscheidung zwischen Java vier verschiedenen Methoden Referenz.

public static class Car {
    public static Car create( final Supplier< Car > supplier ) {
        return supplier.get();
    }              
        
    public static void collide( final Car car ) {
        System.out.println( "Collided " + car.toString() );
    }
        
    public void follow( final Car another ) {
        System.out.println( "Following the " + another.toString() );
    }
        
    public void repair() {   
        System.out.println( "Repaired " + this.toString() );
    }
}
  • Statische Methode Referenzen: Die Syntax ist Class :: static_method, Beispiele sind wie folgt:

    final Car car = Car.create( Car::new );
    final List< Car > cars = Arrays.asList( car );
    
  • Jede Objektmethode einer bestimmten Klasse Quote: Es ist Class :: Methode Syntax Beispiele sind wie folgt:

    cars.forEach( Car::collide );
    
  • Methode verweist auf ein bestimmtes Objekt:es Instanz :: Methodensyntax Beispiele ist wie folgt:

    cars.forEach( Car::repair );
    
  • Constructor Quote: Die Syntax ist Klasse :: neu oder allgemeiner die Klasse <T> :: neue Beispiele sind wie folgt:

    final Car police = Car.create( Car::new );
    cars.forEach( police::follow );
    

Methode verweist Instanz

In Java8Tester.java Datei geben Sie den folgenden Code:

import java.util.List;
import java.util.ArrayList;

public class Java8Tester {
   public static void main(String args[]){
      List names = new ArrayList();
		
      names.add("Google");
      names.add("w3big");
      names.add("Taobao");
      names.add("Baidu");
      names.add("Sina");
		
      names.forEach(System.out::println);
   }
}

Beispiel werden wir system.out :: println Methode als statische Methode zu referenzieren.

Die Umsetzung des obigen Skripts, Ausgabe lautet:

$ javac Java8Tester.java 
$ java Java8Tester
Google
w3big
Taobao
Baidu
Sina

Java 8 neue Funktionen Java 8 neue Funktionen