1
public static void main(String args[]) {
List<Double> doubleList = new ArrayList<>();
doubleList.add(new Double(101.215D));
doubleList.add(new Double(102.215D));
doubleList.add(new Double(103.215D));
printIntValue1(doubleList);
System.out.println("*******");
printIntValue2(doubleList);
}
//bounded parameter
public static <T extends Number> void printIntValue1(List<T> list){
for(T num : list){
System.out.println(num.intValue());
}
}
//Wildcard parametr
public static void printIntValue2(List<? extends Number> list){
for(Number num : list){
System.out.println(num.intValue());
}
}
如上面的兩種方法,兩者都給出了相同的結果。 有人可以告訴我,如果所有的工作已經完成了有界的類型,那麼爲什麼通配符的概念在那裏?通配符是否執行一些其他限制類型的工作?通配符類型與有界類型之間的區別
在Java中,泛型只爲您提供編譯時安全性和檢查功能,僅此而已。在第一種情況下,你有一個'T',你可以用來表示你的具體類型,在第二種情況下你不需要;就這樣。 – vaxquis