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());
}
}
上記の2つの方法と同様に、どちらも同じ結果が得られます。 誰もが、すべての作業が既に有界型で行われている場合、なぜワイルドカードの概念がそこにあるのかを教えてもらえますか?ワイルドカードは、有界型ではない他のいくつかの作業を行いますか?ワイルドカード型と有界型の違い
Javaの場合、ジェネリックはコンパイル時の安全性と検査のみを提供します。第1のケースでは、特定のタイプを表すために使用できる 'T'があります。第2のタイプではそうではありません。それで全部です。 – vaxquis