O exemplo deste artigo resume o uso de genéricos em Java. Compartilhe para todos para sua referência. Os detalhes são os seguintes:
1 uso básico
Lista de interface pública <E> {void add (e);2 genérico e subclasse
Child é uma subclasse do pai, mas a lista <f Child> não é uma subclasse da lista <Saxer>.
Então: list <jist> list = new ArrayList <String> () está errado.
Se o acima estiver correto, então:
List <String> LS = novo Arraylist <String> (); Objeto para string falhará.
3 curingas
Devido a 2, a seguinte implementação não é possível para a saída da coleção unificada.
Void PrintCollection (coleção <Becut> c) {for (objeto o: c) {// faça algo}}}Então, preciso ser usado? ::
Void printCollection (coleção <?> C) {for (objeto o: c) {// 1 // faça algo} // okO tipo aqui é desconhecido, mas qualquer objeto é objeto; portanto, o Exemplo 1 acima está correto. Mas o exemplo a seguir está errado:
Void Add (coleção <? Extende myclass> c) {c.add (new myclass ());O motivo também é muito claro,?
4. Método de geração
O exemplo acima pode ser alcançado:
<T> Add (Coleção <T> C, T T) {C.Add (t);}Na premissa de garantir a semântica, o compilador ajudará a fazer o trabalho de conversão.
5. Comparação do tempo de execução genérico
List <String> L1 = novo Arraylist <String> (); / verdadeiro
Porque a classe genérica é a mesma que quando.
6 Array genérico (pode fazer com que o tipo seja inseguro)
Copie o código do seguinte: List <String> [] LSA = novo ArrayList <String> [10];
Se possível, o tipo pode não estar seguro. como:
Objeto O = LSA; s = LSA [1] .get (0);
Espera -se que este artigo seja útil para o design do programa Java de todos.