繁体   English   中英

Java未绑定的通配符泛型

[英]Java unbound wildcard generics

Bar类中使用通配符类型泛型相比完全跳过它们有什么优势吗?

public class Foo<T> {}

public interface Bar {
    public void addFoo(Foo<?> foo);
    public Foo<?> getFoo(String name);
}

有许多优点。

  • 它们不会产生像使用原始类型那样的编译器警告
  • 它们提供更多类型的安全性 例如,考虑FooList 如果您使用List而不是List<?> ,则可以执行以下操作:

     myBar.getFoo("numbers").add("some string"); 

    即使列表只应该包含Number秒。 如果您返回了List<?> ,那么您将无法向其添加任何内容( null除外),因为列表类型未知。

  • 它们记录的内容与原始类型完全不同,即Foo是在某种未知但特定类型上键入的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM