Может кто-нибудь объяснить мне, какая разница между этими двумя методами? Они такие же? Они выглядят одинаково с точки зрения того, что они решают. Если они одинаковы, зачем нужен ?
?
Метод # 1, неограниченный
public static void printList(List<?> list) {
for (Object elem : list)
System.out.println(elem + " ");
System.out.println();
}
Метод №2, Без ограничений:
public static <T> void printList(List<T> list) {
for (Object elem : list)
System.out.println(elem + " ");
System.out.println();
}
Метод № 1, ограниченный
public static void printList(List<? extends Number> list) {
for (Object elem : list)
System.out.println(elem + " ");
System.out.println();
}
Метод № 2, ограниченный:
public static <T extends Number> void printList(List<T> list) {
for (Object elem : list)
System.out.println(elem + " ");
System.out.println();
}