Les classes génériques sont un type de classe qui prend un type de données comme paramètre lors de sa création. Ce paramètre de type est spécifié à l'aide de crochets et le type peut changer chaque fois qu'une nouvelle instance de la classe est instanciée. Par exemple, créons une ArrayList pour les objets Employés et une autre pour les objets Société.
ArrayList<Employee> employees = new ArrayList<Employee>();
ArrayList<Company> companies = new ArrayList<Company>();
Vous remarquerez que nous utilisons la même classe ArrayList pour créer les deux listes et que nous transmettons le type d'employé ou de société à l'aide de crochets. Le fait qu'une classe générique soit capable de gérer plusieurs types de données permet de réduire le nombre de classes qui effectuent des tâches similaires. Les génériques permettent également de réduire les bugs en donnant à chaque élément un type fort, ce qui aide le compilateur à détecter les erreurs. En spécifiant un type pour ArrayList, le compilateur signalera une erreur si vous essayez d'ajouter un employé à la liste des entreprises ou vice versa.
4 votes
Je trouve difficile d'analyser votre code. Il n'y a pas d'indentation pour commencer, et il y a deux accolades ouvertes et une seule fermée. Est-ce que
T createObject
est censé se trouver à l'intérieur de Pool ou de PoolFactory ? Où se trouvethis.freeObjects = ...
est censé être ? S'agit-il d'un exemple distinct ? Il est illégal de l'avoir à cet endroit ; il doit être à l'intérieur d'une méthode.1 votes
Si quelqu'un cherche des informations sur
<>
(opérateur diamant) qui pourrait être utilisé commeList<Integer> list = new ArrayList<>();
visitez docs.oracle.com/javase/7/docs/technotes/guides/language/ .