Maison >Java >Javacommencer >La différence entre T et ? dans les génériques Java

La différence entre T et ? dans les génériques Java

王林
王林original
2020-01-15 16:28:175952parcourir

La différence entre T et ? dans les génériques Java

T représente un type.

Ajouter à la classe :

class SuperClass<A>{}

Ajouter à la méthode :

public <T>void fromArrayToCollection(T[] a, Collection<T> c){}

(Partage de tutoriel vidéo d'apprentissage gratuit : tutoriel vidéo Java)

Le 8742468051c85b06f0a0af9e3e506b5c sur la méthode signifie que les paramètres génériques sont utilisés entre parenthèses. Si les génériques sont passés dans la classe, ils n'ont pas besoin d'être passés ici. Les paramètres génériques sur le type appelant sont fournis. , à condition qu'ils soient utilisés dans la méthode. Le type générique est cohérent avec le type générique passé dans la classe.

class People<T>{
public void show(T a) {
   }
}

T extends T2 signifie que le paramètre transmis est T2 ou un sous-type de T2.

? est un caractère générique et fait référence à tous les types.

est généralement utilisé pour définir une variable de référence. L'avantage est que, comme indiqué ci-dessous, la définition d'une variable de référence sup peut pointer vers plusieurs objets.

SuperClass<?> sup = new SuperClass<String>("lisi");
sup = new SuperClass<People>(new People());
sup = new SuperClass<Animal>(new Animal());

Si vous n'utilisez pas ? et que vous utilisez un type fixe, alors :

SuperClass<String> sup1 = new SuperClass<String>("lisi");
SuperClass<People> sup2 = new SuperClass<People>("lisi");
SuperClass<Animal> sup3 = new SuperClass<Animal>("lisi");

C'est l'avantage du caractère générique ?

Articles et tutoriels connexes recommandés : Tutoriel d'introduction à Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn