162 votes

Que signifie <T> (crochets) en Java ?

J'étudie actuellement le langage Java et j'ai récemment été déconcerté par les crochets (<>). Que signifient-ils exactement ?

public class Pool<T>{
    public interface PoolFactory<T>{
        public T createObject();
    }
    this.freeObjects = new ArrayList<T>(maxsize)
}

Que fait le <T> C'est-à-dire ? Cela signifie-t-il que je peux créer un objet de type T ?

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 trouve this.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é comme List<Integer> list = new ArrayList<>(); visitez docs.oracle.com/javase/7/docs/technotes/guides/language/ .

8voto

Adiii Points 5246

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X