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
为了维护类型安全,Java 限制向通配符集合添加元素。此限制可确保集合保持一致并防止意外行为。
结论
使用通配符时,考虑可变性的潜在影响至关重要。虽然通配符在处理集合时提供了灵活性,但它们也引入了某些约束以确保集合及其内容的完整性。
以上是为什么我不能将元素添加到'列表”的详细内容。更多信息请关注PHP中文网其他相关文章!