So verwenden Sie die generische Java-Containersammlung
WBOY
Freigeben: 2023-04-19 18:10:42
nach vorne
785 Leute haben es durchsucht
Beginnen wir mit einem einfachen Beispiel:
<code>public void testGenerics() {<br> Collection<Number> numbers = new ArrayList<>();<br> numbers.add(1); // ok<br> numbers.add(0.1); // ok<br><br> Collection<? extends Number> numbers2 = new ArrayList<>();<br> // don't work, you don't know which subtype 'numbers2' exactly contains<br> numbers2.add(1); // oops!<br>}<br></code>
Nach dem Login kopieren
Dieses Beispiel ist tatsächlich etwas unmenschlich. Es wird geschätzt, dass die erste Reaktion der meisten Menschen (einschließlich mir) auf diese Konvertierung sein muss. Natürlich ist es richtig.“ (Das ist eine Falle), lassen Sie mich Ihnen sagen, was ich verstehe:
Collection: Zeigt an, dass diese Collection Objekte des Typs enthält Zahl, die Integer/Long/Float sein kann, da der Compiler feststellen kann, dass obj Instanz von Number == true; sein Collection/Collection, daher funktioniert der Aufruf von „numbers2.add(1)“ nicht, da der Compiler nicht weiß, um welchen Subtyp von „Number“ es sich bei dem in „numbers2“ enthaltenen Element handelt. Kompilierung Der Prozessor kann das Ergebnis der obj-Instanz von „UnknownType“ nicht ermitteln ;
Collection, dieser E-Typ ist „ein“ spezifischer Typ, nicht mehrere, die einen übergeordneten Platzhalter für den Seed-Typ darstellen; #
Wenn Zeile 1 festgelegt ist, wird der nächste Gewinn erzielt Wenn es sich um eine negative Zahl handelt, werden bei einer Reihe nachfolgender Berechnungen Ausnahmen generiert. Wenn der Code nicht robust genug ist, wird möglicherweise sogar eine unerwartete RuntimeException ausgelöst, die dazu führt, dass die Methode abnormal beendet wird. In einem Satz: Collection dient der Laufzeitsicherheit und mögliche Ausnahmen bei der Typkonvertierung werden zur Kompilierzeit behoben.
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn