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

Java Grundlegende Anleitung

Java Workflow-Kontrolle

Java Array

Java objektorientiert(I)

Java objektorientiert(II)

Java objektorientiert(III)

Java Ausnahmebehandlung

Java Liste(List)

Java Queue(Kalender)

Java Map-Kollektion

Java Set-Kollektion

Java Eingabe-Ausgabe(I/O)

Java Reader/Writer

Andere Themen in Java

Java 8 Methodenreferenzen

Java 8 Neue Funktionen

Methodenreferenzen zeigen durch den Namen einer Methode auf eine Methode.

Methodenreferenzen machen die Sprache konstruktiver und kürzer, was die Redundanz des Codes verringert.

Methodenreferenzen verwenden ein Pair von Doppelpunkten ::.

Nachfolgend haben wir in der Klasse Car definiert 4 Eine Methode als Beispiel zur Unterscheidung von Java 4 verschiedener Methodenverweise.

package com.w3codebox.main;
 
@FunctionalInterface
public interface Supplier<T> {
    T get();
}
 
class Car {
    //Supplier ist jdk1.8der Schnittstelle, hier wurde es mit lamda verwendet
    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());
    }
}
  • Konstruktorverweis:Die Syntax ist Class::new oder allgemeiner Class<T>::new, Beispiel hierfür:

    final Car car = Car.create(Car::new);
    final List<Car> cars = Arrays.asList(car);
  • Static Methodenverweis:Die Syntax ist Class::static_method, Beispiel hierfür:

    cars.forEach(Car::collide);
  • Methodenverweis auf ein beliebiges Objekt einer Klasse:Die Syntax ist Class::method, Beispiel hierfür:

    cars.forEach(Car::repair);
  • Methodenverweis auf ein spezielles Objekt:Die Syntax ist instance::method, Beispiel hierfür:

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

Beispiel für Methodenverweis

In Java8Geben Sie den folgenden Code in die Tester.java Datei ein:

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

Im Beispiel verwenden wir System.out::println als statische Methode.

Führen Sie das obige Skript aus, um das Ergebnis auszugeben:

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

Java 8 Neue Funktionen