当我们将有界通配符与 super 一起使用时,意味着类型参数可以是指定类型或其任何超类。例如,列表表示列表可以保存 Number 类型的对象或其任何父类。
在第一个示例中,列表 list 声明为列表不能接受 Object,因为 Object 不是 Number 的子类。另一方面,Integer 是 Number 的子类,因此可以将其添加到列表中。
在第二个示例中,您尝试传递 List到需要 List 的方法超级数字>。出现此编译错误是因为 String 不是 Number 的子类。您提出的逻辑不正确:对象不是 Number 的超类,String 不是 Number 的子类。
与下限通配符不同,上限通配符不能用作生产者。这意味着您无法从 List 中获取单个元素。超级数字>。此限制的存在是为了防止类型安全违规。
带有 super 的有界通配符允许我们创建可以使用从公共超类继承的多种类型的对象的集合。但是,在向这些集合添加元素时我们应该小心,因为我们不能添加不是指定超类的子类的对象。
以上是Java 泛型是如何做的? super` 通配符的工作原理及其局限性是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!