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

java泛型類形參和通配符

榮姿康1年前7瀏覽0評論

Java是一種靜態(tài)類型語言,它提供了泛型類形參和通配符來增加類型的安全性和靈活性。

泛型類形參是指在定義類時,使用類型參數來表示類中的屬性、方法或內部類,使得類中的數據類型變得更加抽象和通用。例如,定義一個類Box,用T來表示盒子中裝的物品的類型:

public class Box<T> {
private T item;
public void addItem(T item) {
this.item = item;
}
public T getItem() {
return item;
}
}

在這個Box類中,T是一個泛型類形參,可以代表任何類型,使用時需要實例化該類,并傳遞一個具體的類型作為參數:

Box<String> stringBox = new Box<>();
stringBox.addItem("hello");
String str = stringBox.getItem();

上面的例子中,我們實例化了一個Box對象,并指定類型為String,然后向這個盒子中添加了一個字符串,最后獲取這個字符串并賦值給變量str。

通配符是指“?”符號,可以用于定義泛型類的參數或方法的參數,表示這個參數可以是任何類型。通配符可以分為上限通配符和下限通配符。

上限通配符用于表示參數類型必須是指定類型或指定類型的子類。例如:

public static double sumOfList(List<? extends Number> list) {
double sum = 0;
for (Number num : list) {
sum += num.doubleValue();
}
return sum;
}

上面的例子中,定義了一個sumOfList方法,它接受一個List作為參數,這個List必須是Number類型或Number類型的子類。例如,我們可以將一個List<Integer>或List<Double>作為參數傳遞給這個方法,但不能將一個List<String>作為參數傳遞。

下限通配符用于表示參數類型必須是指定類型或指定類型的父類。例如:

public static void addToList(List<? super Integer> list) {
list.add(new Integer(10));
list.add(new Integer(20));
}

上面的例子中,定義了一個addToList方法,它接受一個List作為參數,這個List必須是Integer類型或Integer類型的父類。例如,我們可以將一個List<Number>或List<Object>作為參數傳遞給這個方法,但不能將一個List<Double>作為參數傳遞。

使用泛型類形參和通配符可以使Java程序編寫更加簡潔和靈活,同時避免類型轉換和類型不匹配帶來的錯誤。