Heim >Java >javaLernprogramm >Warum kann ich einer Java-Liste keine Elemente hinzufügen?
Verwendung von Platzhaltern in Java-Listenstrukturen: Die Auswirkungen von List< verstehen erweitert Number>
Das beschriebene Szenario beinhaltet einen Versuch, Daten zu einer Liste hinzuzufügen, die als List deklariert ist. erweitert Nummer> namens foo3. Dieser Vorgang löst jedoch einen Fehler bei der Kompilierung aus. Dieser Artikel soll klären, warum solche Vorgänge nicht zulässig sind, und eine umfassende Erläuterung der Auswirkungen der Verwendung von Platzhaltern, insbesondere List, liefern. erweitert Number>`.
In Java sind Platzhalter generische Typen, die unbekannte Typen darstellen. Im Kontext von Sammlungen können Platzhalter verwendet werden, um entweder Obergrenzen (? extensions T) oder Untergrenzen (? super T) für die Art der Elemente anzugeben, die in der Sammlung enthalten sein können.
In diesem Fall der Liste erweitert Number>, die Platzhalterdeklaration gibt an, dass die Liste jeden Typ enthalten kann, der eine Unterklasse von Number ist. Das bedeutet, dass die Liste möglicherweise Ganzzahlen, Doppelzahlen, Gleitkommazahlen oder andere Unterklassen von Zahlen enthalten könnte. Der genaue Typ der Liste ist jedoch unbekannt.
Angesichts dieser Unsicherheit wird es unmöglich zu bestimmen, welcher spezifische Objekttyp sicher zur Liste hinzugefügt werden kann, ohne die Einschränkungen der Wildcard-Deklaration zu verletzen. Wenn die Liste beispielsweise tatsächlich eine Liste
Umgekehrt, wenn die Liste eine Liste
Daher ist die einzige sichere Operation, die auf einer Liste erweitert Nummer> besteht darin, daraus zu lesen, da jeder Versuch, seine Elemente hinzuzufügen oder zu ändern, möglicherweise seine Einschränkungen verletzen könnte. Diese Einschränkung stellt die Integrität der Liste sicher und verhindert Laufzeitfehler.
Das obige ist der detaillierte Inhalt vonWarum kann ich einer Java-Liste keine Elemente hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!