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

java泛型的t和se

方一強1年前6瀏覽0評論

Java泛型是Java5之后引進的新特性之一,它可以讓你在編譯時期指定一個泛型類型(Type),從而在代碼中避免使用強制類型轉換和錯誤的類型操作。下面我們來看一下Java中兩個關鍵字t和se的作用。

public class MyClass<T> {
T obj;
public void setObj(T obj) {
this.obj = obj;
}
public T getObj() {
return obj;
}
}
public class Main {
public static void main(String[] args) {
MyClass<String> myClass = new MyClass<>();
myClass.setObj("This is a string");
System.out.println(myClass.getObj());
MyClass<Integer> myClass2 = new MyClass<>();
myClass2.setObj(123);
System.out.println(myClass2.getObj());
MyClass<Boolean> myClass3 = new MyClass<>();
myClass3.setObj(true);
System.out.println(myClass3.getObj());
}
}

上面的代碼中,我們創建了一個類MyClass,使用關鍵字T指定了一個泛型類型。這個類中有兩個方法,setObj和getObj,它們都使用泛型類型T作為參數類型和返回值類型。

在main方法中,我們創建了三個MyClass對象,分別使用String、Integer和Boolean類型作為T的泛型類型。我們分別使用set方法將不同類型的值存入這些對象,然后使用get方法獲取這些值并輸出到控制臺。

上面的例子中,我們使用了T這個關鍵字,它表示泛型類型。此外,Java還提供了一個通配符關鍵字se,它表示不確定的類型。我們來看下面的代碼:

public static void printList(List<? extends Number> list) {
for (Number n : list) {
System.out.print(n + " ");
}
System.out.println();
}
public static void main(String[] args) {
List<Integer> intList = new ArrayList<>();
List<Double> doubleList = new ArrayList<>();
for (int i = 0; i < 5; i++) {
intList.add(i);
doubleList.add(i + 0.5);
}
printList(intList);
printList(doubleList);
}

上面的代碼中,我們定義了一個printList方法,該方法接受一個List類型的參數,該參數的泛型類型必須是Number類或其子類。我們使用for-each語句遍歷這個list對象,并輸出它的每個元素。

在main方法中,我們創建了一個包含5個Integer類型元素的intList對象,和一個包含5個Double類型元素的doubleList對象。我們分別將這兩個對象傳遞給printList方法,由于Integer是Number的子類,Double也是Number的子類,所以我們可以將這兩個對象作為參數傳遞。在方法中,我們可以像處理Number類型一樣來處理這兩個List。

需要注意的是,我們使用了通配符關鍵字se來限制了參數的類型范圍。在printList方法內部,我們只使用了Number類型,而沒有具體的類型參數。因此,當我們調用printList方法時,可以傳遞任何類型的List對象,只要它的泛型類型是Number的子類。