私はJavaが初めてです。この ドキュメントでは、ワイルドカードを使用するユースケースとしてこれを示しています。
static void printCollection(Collection c) {
Iterator i = c.iterator();
for (int k = 0; k < c.size(); k++) {
System.out.println(i.next());
}
}
これが彼らの解決策です:
static void printCollection(Collection<?> c) {
for (Object e : c) {
System.out.println(e);
}
}
しかし、ワイルドカードなしで同じことができます:
static <T> void printCollection(Collection<T> c) {
Iterator i = c.iterator();
for (int k = 0; k < c.size(); k++) {
System.out.println(i.next());
}
}
通常のジェネリックは機能しないが、ワイルドカードは機能する簡単なユースケースを誰かに教えてもらえますか?
更新: ここの回答Java Generics でいつワイルドカードを使用するのですか? ワイルドカードの必要性を教えないでください。実際にはその逆です。