Java-Funktionsgenerika ermöglichen das Festlegen von Ober- und Untergrenzen. Die Obergrenze (extends) gibt an, dass der von der Funktion akzeptierte oder zurückgegebene Datentyp ein Untertyp des angegebenen Typs sein muss, z. B.
Obere und untere Grenzen von Java-Funktionsgenerika
Funktionsgenerika sind ein leistungsstarker Mechanismus, der es uns ermöglicht, zur Kompilierungszeit die Datentypen anzugeben, die eine Funktion verarbeiten kann. Generics in Java können Ober- und Untergrenzen deklarieren, um die von einer Funktion akzeptierten oder zurückgegebenen Datentypen einzuschränken.
Obergrenze
Die Obergrenze gibt an, dass der Datentyp, den die Funktion akzeptieren oder zurückgeben kann, ein Untertyp eines angegebenen Typs sein muss. Es wird mit dem Schlüsselwort „extends“ angegeben. Zum Beispiel:
public <T extends Number> void printNumber(T number) { System.out.println(number); }
Diese Funktion kann nur Zahlentypen oder deren Unterklassen (z. B. Integer, Double, Float) akzeptieren.
Untergrenze (Untergrenze)
Die Untergrenze gibt an, dass der Datentyp, den die Funktion akzeptieren oder zurückgeben kann, ein Supertyp eines angegebenen Typs sein muss. Die Angabe erfolgt mit dem Schlüsselwort super. Zum Beispiel:
public <T super Number> void sumNumbers(List<T> numbers) { double sum = 0; for (T number : numbers) { sum += number.doubleValue(); } }
Diese Funktion kann eine Zahl oder eine Liste ihrer Supertypen akzeptieren, z. B. List
Praktischer Fall
Angenommen, wir haben eine Funktion, die zwei Zahlen vergleicht:
public static <T extends Comparable<T>> int compare(T obj1, T obj2) { return obj1.compareTo(obj2); }
Wir können diese Funktion verwenden, um jeden Typ zu vergleichen, der die Comparable-Schnittstelle implementiert, zum Beispiel:
int result = compare(10, 20); // result 为 -1
Mit Methoden
Mit Generika Beachten Sie beim Festlegen von Ober- und Untergrenzen Folgendes:
Das obige ist der detaillierte Inhalt vonWas sind die Ober- und Untergrenzen von Java-Funktionsgenerika? wie benutzt man?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!