使用通配符来表示无界或上界泛型的目的是什么?更具体地说:
为什么要这样写:
为什么要这样写:
为什么要这样写:
public static void foo(List<?> bar)
而不是 public static <E> void foo(List<E> bar)
?为什么要这样写:
public static void foo(List<? extends Baz> bar)
而不是 public static <E extends Baz> void foo(List<E> bar)
?