それで、私はジェネリックスを読んで、概念を再理解しました。特に、ワイルドカードを使用したり、遭遇したりすることがほとんどないため、ワイルドカードが関係している場合はそうです。私が行った読書から、なぜ彼らがワイルドカードを使用するのか理解できません。私が出くわす例の1つは次のとおりです。
void printCollection( Collection<?> c ) {
for (Object o : c){
System.out.println(o);
}
}
なぜあなたはこれを次のように書かないのですか?
<T> void printCollection( Collection<T> c ) {
for(T o : c) {
System.out.println(o);
}
}
オラクルのウェブサイトからの別の例:
public static double sumOfList(List<? extends Number> list) {
double s = 0.0;
for (Number n : list)
s += n.doubleValue();
return s;
}
なぜこれは次のように書かれていないのですか
public static <T extends Number> double sumOfList(List<T> list) {
double s = 0.0;
for (Number n : list)
s += n.doubleValue();
return s;
}
私は何かが足りないのですか?