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-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:
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
及其子类(如 Integer
和 Double
rrreee
super
bedeutet, dass T
eine Superklasse der Klasse String
oder String
selbst sein muss. Praktischer Fall
Lassen Sie uns eineLinkedList
zum Speichern von Zahlen erstellen und eine Obergrenze verwenden, um sicherzustellen, dass die Liste nur Number
enthält. Typ: 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
). 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!