Heim  >  Artikel  >  Java  >  Generische Java-Grenzen und ihre Rolle

Generische Java-Grenzen und ihre Rolle

王林
王林Original
2024-04-12 21:48:021184Durchsuche

Generische Java-Grenzen legen Einschränkungen für Typparameter fest und stellen sicher, dass nur Typen verwendet werden können, die diese Einschränkungen erfüllen. Es gibt zwei Arten von generischen Grenzen: Obergrenzen (extends) und Untergrenzen (super). Eine Obergrenze erfordert, dass der Typparameter eine Unterklasse des angegebenen Typs ist, während eine Untergrenze erfordert, dass der Typparameter eine Oberklasse des angegebenen Typs ist. Generische Grenzen erhöhen die Typsicherheit, verbessern die Leistung und die Lesbarkeit des Codes.

Java 泛型边界与它的作用

Java-Generika-Grenze und ihre Rolle

Übersicht

Generika sind eine leistungsstarke Funktion in Java, die es uns ermöglicht, Klassen und Methoden zu erstellen, die mit verschiedenen Datentypen arbeiten. Mit generischen Grenzen können wir Einschränkungen für Typparameter festlegen und so sicherstellen, dass nur Typen verwendet werden können, die diese Einschränkungen erfüllen.

Generische Grenztypen

Java bietet zwei Arten von generischen Grenzen:

  • Obere Grenzen (erweitert): Der Typparameter muss eine Unterklasse des angegebenen Typs oder sich selbst sein.
  • Untere Grenze (Super): Der Typparameter muss eine Oberklasse des angegebenen Typs oder sich selbst sein.

Verwenden generischer Grenzen

Bei der Verwendung generischer Grenzen geben wir die Grenzen in der generischen Deklaration an:

<T extends Number> // 上限边界

extends Schlüsselwort bedeutet, dass T muss Ist ein Unterklasse der Klasse Number oder Number selbst. extends 关键字表示 T 必须是 Number 类的子类或 Number 本身。

<? super String> // 下限边界

super 关键字表示 T 必须是 String 类的超类或 String 本身。

实战案例

让我们创建一个 LinkedList 来存储数字,并使用上限边界来确保列表中只包含 Number 类型:

import java.util.LinkedList;

class NumberList<T extends Number> {
    private LinkedList<T> numbers;

    public NumberList() {
        numbers = new LinkedList<>();
    }

    public void add(T number) {
        numbers.add(number);
    }

    public T get(int index) {
        return numbers.get(index);
    }
}

在这个例子中,T 被限制为 Number 的子类,这意味着我们只能添加和检索 Number 及其子类(如 IntegerDoublerrreee

Das Schlüsselwort super bedeutet, dass T eine Superklasse der Klasse String oder String selbst sein muss.

Praktischer Fall

Lassen Sie uns eine LinkedList zum Speichern von Zahlen erstellen und eine Obergrenze verwenden, um sicherzustellen, dass die Liste nur Number enthält. Typ:
    rrreee
  • In diesem Beispiel , T ist auf eine Unterklasse von Number beschränkt, was bedeutet, dass wir nur Number und seine Unterklassen (z. B. Integer) hinzufügen und abrufen können Daten vom Typ und Double).
  • Vorteile
Die Verwendung generischer Grenzen hat die folgenden Vorteile: 🎜🎜🎜Erhöhte Typsicherheit: Sie verhindert, dass falsche Typen an generische Klassen oder Methoden übergeben werden. 🎜🎜Verbesserte Leistung: Der Compiler kann bessere Optimierungen durchführen, da er die Einschränkungen eines bestimmten Typs kennt. 🎜🎜Verbesserung der Lesbarkeit des Codes: Generische Grenzen erleichtern das Verständnis des Codes, da sie die akzeptierten Datentypen klar angeben. 🎜🎜

Das obige ist der detaillierte Inhalt vonGenerische Java-Grenzen und ihre Rolle. 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