El ejemplo de este artículo resume el uso de genéricos en Java. Compártelo para todos para su referencia. Los detalles son los siguientes:
1 uso básico
Lista de interfaz pública <E> {void add (e);2 genéricos y subclase
El niño es una subclase de los padres, pero List <Child> no es una subclase de List <Parent>.
SO: List <ject> list = new ArrayList <String> () es incorrecto.
Si lo anterior es correcto, entonces:
List <String> LS = New ArrayList <String> (); El objeto a la cadena fallará.
3 comodines
Debido a 2, la siguiente implementación no es posible para la salida de la colección unificada.
Void printcollection (colección <ject> c) {for (object o: c) {// haz algo}}}Entonces, ¿necesitas ser usado? ::
Void printcollection (colección <?> C) {for (objeto o: c) {// 1 // hacer algo} // okEl tipo aquí es desconocido, pero cualquier objeto es objeto, por lo que el ejemplo anterior 1 es correcto. Pero el siguiente ejemplo es incorrecto:
void add (colección <? extiende myclass> c) {c.add (nuevo myclass ());La razón también es muy clara, extiende el tipo de descripción de MyClass es la subclase de MyClass, pero no conozco el tipo específico
4. Método de generación
El ejemplo anterior se puede lograr:
<t> add (colección <t> c, t t) {c.add (t);}En la premisa de garantizar la semántica, el compilador ayudará a hacer un trabajo de conversión de tipo.
5. Comparación del tiempo de ejecución genérico
List <String> L1 = New ArrayList <String> (); / verdadero
Porque la clase genérica es la misma que cuando.
6 matriz genérica (puede hacer que el tipo sea inseguro)
Copiar código de código de la siguiente manera: List <String> [] LSA = New ArrayList <String> [10];
Si es posible, el tipo puede no ser seguro. como:
Objeto o = lsa; S = LSA [1] .get (0);
Se espera que este artículo sea útil para el diseño del programa Java de todos.