Genaue definition von "functional interface" in Java 8

Vor kurzem begann ich, zu erforschen Java 8 und ich kann nicht ganz verstehen, das Konzept der "funktionale Oberfläche", die ist unverzichtbar, um Java-Implementierung von lambda-Ausdrücken. Es ist ein ziemlich umfassende Anleitung zu lambda-Funktionen in Java, aber ich blieb stecken auf das Kapitel, das gibt die definition auf das Konzept der funktionalen Schnittstellen. Die definition lautet:

Genauer gesagt, ein funktionales interface ist definiert als eine Schnittstelle, die genau eine abstrakte Methode.

Dann geht er auf Beispiele, von denen Comparator Schnittstelle:

public interface Comparator<T> {
    int compare(T o1, T o2);
    boolean equals(Object obj);
} 

War ich in der Lage zu testen, ich kann mit einer lambda-Funktion an Stelle der Komparator argument und es funktioniert(d.h. Collections.sort(list, (a, b) -> a-b)).

Aber in der Komparator-Schnittstelle compare und equals Methoden sind Abstrakt, das heißt, es hat zwei abstrakte Methoden. Wie kann das also funktionieren, wenn die definition erfordert eine Schnittstelle zu haben genau eine abstrakte Methode? Was vermisse ich hier?

InformationsquelleAutor Anton Cherkashyn | 2013-02-01

Schreibe einen Kommentar