Latest web development tutorials

Java 8 Metode referensi

Java 8 fitur baru Java 8 fitur baru


Metode direferensikan oleh nama metode untuk menunjuk ke sebuah metode.

Metode konfigurasi referensi dapat dibuat lebih bahasa kompak dan ringkas untuk mengurangi kode berlebihan.

Metode referensi sepasang titik dua (: :).

Di bawah ini, kita mendefinisikan empat metode kelas Mobil sebagai contoh, perbedaan antara Jawa didukung empat referensi metode yang berbeda.

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() );
    }
}
  • Statis referensi Metode: Perintahnya adalah Kelas :: static_method, contoh adalah sebagai berikut:

    final Car car = Car.create( Car::new );
    final List< Car > cars = Arrays.asList( car );
    
  • Setiap metode objek dari Kutip kelas tertentu: Ini adalah Kelas :: contoh sintaks metode adalah sebagai berikut:

    cars.forEach( Car::collide );
    
  • Metode referensi objek tertentu: itu adalah contoh sintaks contoh :: metode adalah sebagai berikut:

    cars.forEach( Car::repair );
    
  • Konstruktor Quote: Perintahnya adalah Kelas :: baru, atau lebih umum Kelas <T> :: contoh baru adalah sebagai berikut:

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

Metode referensi contoh

Dalam file Java8Tester.java masukkan kode berikut:

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);
   }
}

Misalnya kita akan System.out :: metode println sebagai metode statis untuk referensi.

Pelaksanaan script di atas, output:

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

Java 8 fitur baru Java 8 fitur baru