欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

JAVA泛型extends和super

吉茹定1年前7瀏覽0評論

Java泛型是一個非常重要的概念,泛型是Java中的一個重要特性,可以幫助我們寫出更加安全和更加通用的代碼。泛型中extends和super是兩個關鍵字,也是Java泛型中非常重要的一個概念。

extends和super聲明在泛型的定義中,用于限制泛型的數據類型范圍,extends表示泛型參數是某個類的子類,super表示泛型參數是某個類的父類。我們通過extends和super關鍵字來實現類型之間的繼承關系。

public class GenericTest {
public static void main(String[] args) {
List<? extends Number> list1 = new ArrayList<>();
List<? super Integer> list2 = new ArrayList<>();
List<? super Integer> list3 = new ArrayList<>();
List<String> list4 = new ArrayList<>();
list1.add(null);
// list1.add(1); // 編譯錯誤
list2.add(1);
// list2.add(2L); // 編譯錯誤
list3.add(1);
list4.add("hello");
System.out.println(list1.get(0));
System.out.println(list2.get(0));
// System.out.println(list3.get(0)); // 編譯錯誤
System.out.println(list4.get(0));
}
}

在上面的代碼中,我們使用了四個不同的泛型來實現類型限制:

1. List<? extends Number>表示該列表中的元素都是Number及其子類的實例,例如Integer、Double、Float等。

2. List<? super Integer>也表示該列表中的元素都是Integer及其父類的實例,例如Object、Number。

3. List<? super Integer>同樣也表示該列表中的元素都是Integer及其父類的實例,但是List<? super Integer>不是List<? extends Number>的子類。

4. List<String>表示該列表中的元素都是String類型的實例。

通過以上代碼我們可以看出,使用extends關鍵字可以限制泛型的下限,表示該泛型參數是某個類的子類,而super關鍵字可以限制泛型的上限,表示該泛型參數是某個類的父類。