Joh*_*erg 4 java generics nested bounded-wildcard
在Bar课堂上使用通配符类型的泛型完全跳过它们有什么好处吗?
public class Foo<T> {}
public interface Bar {
public void addFoo(Foo<?> foo);
public Foo<?> getFoo(String name);
}
Run Code Online (Sandbox Code Playgroud)
有许多优点.
它们提供更多类型的安全性 例如,考虑一下,如果Foo是List相反.如果您使用List而不是List<?>,您可以这样做:
myBar.getFoo("numbers").add("some string");
Run Code Online (Sandbox Code Playgroud)
即使列表只应该包含Numbers.如果您返回了a List<?>,那么您将无法向其添加任何内容(除外null),因为列表类型未知.
Foo在某种未知但特定类型上键入的内容.