Heim  >  Artikel  >  Java  >  Was sind die Ober- und Untergrenzen von Java-Funktionsgenerika? wie benutzt man?

Was sind die Ober- und Untergrenzen von Java-Funktionsgenerika? wie benutzt man?

王林
王林Original
2024-04-26 11:45:02641Durchsuche

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. b8acfc0f0bb79e5c69e52dfc9c9fe5d2. Die Untergrenze (super) gibt an, dass der von der Funktion akzeptierte oder zurückgegebene Datentyp der Supertyp des angegebenen Typs sein muss, z. B. 8991fee22ef165e6bc8a2922b920a06c. Die Verwendung von Generika verbessert die Wiederverwendbarkeit und Sicherheit des Codes.

Java 函数泛型的上限和下限是什么?如何使用?

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. Lista87fdacec66f0909fc0757c19f2d2b1d.

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:

  • Die Obergrenze gibt an, dass der Datentyp, den die Funktion verarbeiten kann, ein Untertyp des angegebenen Typs sein muss.
  • Die Untergrenze gibt an, dass der Datentyp, den die Funktion verarbeiten kann, ein Supertyp des angegebenen Typs sein muss.
  • Sie können sowohl Ober- als auch Untergrenzen verwenden, um die von einer Funktion akzeptierten oder zurückgegebenen Datentypen weiter einzuschränken.
  • Die Verwendung von Generika kann die Wiederverwendbarkeit und Sicherheit von Code verbessern.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn