например:
public String add(Set<?> t){
...;
}
public <T> String add(Set<T> t){
...;
}
Первый использует подстановочные дженерики; вторая - обычная форма общего метода. Какая разница?
В какой ситуации нам нужны подстановочные дженерики, а не нормальная форма дженериков?