Я новичок в 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);
}
}
Но я мог бы сделать то же самое без wild card:
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? НЕ говорите нам о необходимости подстановки. На самом деле это наоборот.