4
在完全跳過它們之後,在Bar
類中使用通配符類型是否有任何優勢?Java未綁定的通配符類型
public class Foo<T> {}
public interface Bar {
public void addFoo(Foo<?> foo);
public Foo<?> getFoo(String name);
}
在完全跳過它們之後,在Bar
類中使用通配符類型是否有任何優勢?Java未綁定的通配符類型
public class Foo<T> {}
public interface Bar {
public void addFoo(Foo<?> foo);
public Foo<?> getFoo(String name);
}
有很多優點。
他們給予更多的類型安全。例如,請考慮Foo
是否爲List
。如果您使用的List
代替List<?>
,你可以這樣做:
myBar.getFoo("numbers").add("some string");
即使列表只應該包含Number
秒。如果您返回List<?>
,那麼您將無法將任何東西添加到它(除了null
),因爲列表的類型未知。
Foo
是在一些未知的,但具體類型類型。
你可能想看看http://stackoverflow.com/questions/503721/generics-in-java-using-wildcards – assylias 2012-02-06 18:25:54