gpt4 book ai didi

Java 未绑定(bind)通配符泛型

转载 作者:搜寻专家 更新时间:2023-11-01 02:14:34 25 4
gpt4 key购买 nike

与完全跳过它们相比,在 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是按某种未知但特定的类型键入的。

关于Java 未绑定(bind)通配符泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9164886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com