Sempadan generik Java menyatakan kekangan pada parameter jenis, memastikan hanya jenis yang memenuhi kekangan ini boleh digunakan. Terdapat dua jenis sempadan generik: sempadan atas (lanjutan) dan sempadan bawah (super). Sempadan atas memerlukan parameter jenis menjadi subkelas jenis yang ditentukan, manakala sempadan bawah memerlukan parameter jenis ialah superclass jenis yang ditentukan. Sempadan generik meningkatkan keselamatan jenis, meningkatkan prestasi dan kebolehbacaan kod. Sempadan Generik Java dan Peranannya Sempadan generik membolehkan kami menentukan kekangan pada parameter jenis, memastikan bahawa hanya jenis yang memenuhi kekangan ini boleh digunakan.
Jenis sempadan generik
Java menyediakan dua jenis sempadan generik:
Sempadan atas (lanjutan): Parameter jenis mestilah subkelas jenis yang ditentukan atau dirinya sendiri.
Sempadan bawah (super):Parameter jenis mestilah kelas super jenis yang ditentukan atau dirinya sendiri.
Menggunakan sempadan generik
<T extends Number> // 上限边界
lanjutkan
kata kunci bermakna T
mestilah subkelas kelas Number
atau Number
itu sendiri. <? super String> // 下限边界
super
bermaksud T
mestilah superclass kelas String
atau String
itu sendiri. . , T
dihadkan kepada subkelas Nombor
, yang bermaksud kita hanya boleh menambah dan mendapatkan Nombor
dan subkelasnya (seperti Integer
dan Double
) jenis data. Menggunakan sempadan generik mempunyai faedah berikut:
Keselamatan jenis yang dipertingkatkan: Ia membantu mengelakkan jenis yang salah daripada dihantar ke kelas atau kaedah generik.
Prestasi yang dipertingkatkan: Pengkompil boleh melakukan pengoptimuman yang lebih baik kerana ia mengetahui kekangan jenis tertentu. extends
关键字表示 T
必须是 Number
类的子类或 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); } }
super
关键字表示 T
必须是 String
类的超类或 String
本身。
实战案例
让我们创建一个 LinkedList
来存储数字,并使用上限边界来确保列表中只包含 Number
类型:
在这个例子中,T
被限制为 Number
的子类,这意味着我们只能添加和检索 Number
及其子类(如 Integer
和 Double
Atas ialah kandungan terperinci Sempadan generik Java dan peranannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!