Articles

comment utiliser la classe en Java?

Tout ce que nous savons, c’est que « toutes les instances d’une classe quelconque partagent le même java.lang.La classe d’objet de ce type de classe »

e.g)

Student a = new Student();Student b = new Student();

Puis a.getClass() == b.getClass() est vraie.

supposons Maintenant

Teacher t = new Teacher();

sans les génériques ci-dessous est possible.

Class studentClassRef = t.getClass();

Mais c’est faux maintenant ..?

par exemple)public void printStudentClassInfo(Class studentClassRef) {}peut être appelé avecTeacher.class

cela peut être évité en utilisant des génériques.,

Class<Student> studentClassRef = t.getClass(); //Compilation error.

Maintenant, qu’est-ce que T ?? T est des paramètres de type( également appelés variables de type); délimités par des crochets (<>), suit le nom de la classe.
T est juste un symbole, comme un nom de variable (peut être n’importe quel nom) déclaré lors de l’écriture du fichier de classe. Plus tard que T sera remplacé par
valid nom de la Classe lors de l’initialisation (HashMap<String> map = new HashMap<String>();)

e.g) class name<T1, T2, ..., Tn>

Donc Class<T> représente un objet de classe de classe spécifique de type ‘T‘.,

Supposons que vos méthodes de la classe a à travailler avec type inconnu paramètres comme ci-dessous

Ici, T peut être utilisé comme String type de CarName

OU T peut être utilisé comme Integer type de modelNumber,

OU T peut être utilisé comme Object type valide voiture instance.

maintenant, voici le POJO simple qui peut être utilisé différemment lors de l’exécution.
Collections par exemple) List, Set, Hashmap sont les meilleurs exemples qui fonctionneront avec différents objets selon la déclaration de T, mais une fois que nous avons déclaré T comme chaîne
E.,g)HashMap<String> map = new HashMap<String>(); alors il n’acceptera que les objets D’instance de classe String.

Méthodes Génériques

Générique méthodes sont des méthodes qui introduisent leurs propres paramètres de type. Ceci est similaire à la déclaration d’un type générique, mais la portée du paramètre type est limitée à la méthode où il est déclaré. Les méthodes génériques statiques et non statiques sont autorisées, ainsi que les constructeurs de classes génériques.

la syntaxe d’une méthode générique comprend un paramètre type, entre crochets, et apparaît avant le type de retour de la méthode., Pour les méthodes génériques, la section paramètre type doit apparaître avant le type de retour de la méthode.

Ici <K, V, Z, Y> est la déclaration des types utilisés dans les arguments de la méthode qui devrait, avant que le type de retour qui est boolean ici.

ci-dessous; type declaration<T> n’est pas requis au niveau de la méthode, car il est déjà déclaré au niveau de la classe.

class MyClass<T> { private T myMethod(T a){ return a; }}

Mais ci-dessous est faux car les paramètres de type au niveau de la classe K, V, Z et Y ne peuvent pas être utilisés dans un contexte statique (méthode statique ici).,

D’autres scénarios valides sont

et enfin la méthode statique a toujours besoin d’une déclaration explicite<T>; elle ne dérivera pas du niveau de classeClass<T>. C’est à cause du niveau de classe T est lié à l’instance.

lisez également les Restrictions sur les génériques

Les caractères génériques et les sous-types

l’argument de type pour une méthode générique