首页 > Java > java教程 > 为什么我不能将元素添加到'列表”

为什么我不能将元素添加到'列表”

Mary-Kate Olsen
发布: 2024-12-13 16:48:11
原创
750 人浏览过

Why Can't I Add Elements to a `List

Java 集合中的通配符和可变性

使用 Java 集合时,了解通配符如何影响集合的行为非常重要。考虑以下代码:

List<? extends Parent> list = ...;
Parent p = factory.get();   // returns concrete implementation
list.set(0, p);   // fails: set(int, ? extends Parent) cannot be applied to (int, Parent)
登录后复制

由于与通配符和可变性相关的限制,此代码无法编译。

为什么有限制?

通配符语法, extends Parent>,表明该集合包含Parent的某些子类型。但是,此限制会阻止将 Parent 对象添加到集合中,因为特定的子类型可能不允许这样做。

例如,如果 list 实际上是 List,则添加 Parent 对象将违反类型安全性集合。这是因为 Child 是 Parent 的子类型,而 Parent 对象可能与 Child 上允许的操作不兼容。

为了维护类型安全,Java 限制向通配符集合添加元素。此限制可确保集合保持一致并防止意外行为。

结论

使用通配符时,考虑可变性的潜在影响至关重要。虽然通配符在处理集合时提供了灵活性,但它们也引入了某些约束以确保集合及其内容的完整性。

以上是为什么我不能将元素添加到'列表”的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板