首頁 >Java >java教程 >為什麼我不能將元素添加到'列表”

為什麼我不能將元素添加到'列表”

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-13 16:48:11754瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn