English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java Array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (cola)

Conjuntos de Mapa de Java

Conjuntos de Java

Entrada y salida de Java (I/O)

Reader de Java/Writer

Otras temáticas de Java

Java 8 Referencia de método

Java 8 Nuevas características

La referencia de método apunta a un método mediante el nombre del método.

La referencia de método puede hacer que la estructura del lenguaje sea más compacta y concisa, reduciendo el código redundante.

La referencia de método utiliza un par de dos puntos ::.

A continuación, definimos 4 Este método se utiliza como ejemplo para distinguir entre 4 métodos de referencia de diferentes tipos.

package com.w3codebox.main;
 
@FunctionalInterface
public interface Supplier<T> {
    T get();
}
 
class Car {
    //Supplier es jdk1.8de la interfaz, aquí se utiliza junto con lamda
    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());
    }
}
  • referencia de constructor:Su sintaxis es Class::new, o más generalmente Class<T>::new, ejemplo a continuación:

    final Car car = Car.create(Car::new);
    final List<Car> cars = Arrays.asList(car);
  • referencia de método de método estático:Su sintaxis es Class::static_method, ejemplo a continuación:

    cars.forEach(Car::collide);
  • referencia de método de cualquier objeto de clase específica:Su sintaxis es Class::method, ejemplo a continuación:

    cars.forEach(Car::repair);
  • referencia de método de objeto específico:Su sintaxis es instance::method, ejemplo a continuación:

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

ejemplo de referencia de método

en Java8Tester.java archivo ingrese el siguiente código:

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

En el ejemplo, usamos System.out::println como método estático.

Ejecutar el siguiente script, el resultado será:

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

Java 8 Nuevas características