Maison > Java > javaDidacticiel > Comment instancier un type générique en Java avec un paramètre de classe ?

Comment instancier un type générique en Java avec un paramètre de classe ?

Patricia Arquette
Libérer: 2024-11-24 08:43:12
original
605 Les gens l'ont consulté

How to Instantiate a Generic Type in Java with a Class Parameter?

Instanciation de types génériques en Java avec paramètre de classe

Les génériques en Java offrent un moyen pratique de définir des classes et des méthodes qui fonctionnent sur une variété de types de données. Cependant, instancier un objet d'un type générique peut être un peu délicat.

Supposons que vous ayez une déclaration de classe comme celle-ci :

public class Abc<T> {
    public T getInstanceOfT() {
        // I want to create an instance of T and return the same.
    }
}
Copier après la connexion

Comment pouvez-vous créer un objet de type T dans le Méthode getInstanceOfT ?

Solution :

La clé de l'instanciation un type générique consiste à transmettre le type réel comme argument à la classe générique. Cela peut être fait en utilisant la classe paramètre de type :

public class Abc<T> {
    public T getInstanceOfT(Class<T> aClass) {
        return aClass.newInstance();
    }
}
Copier après la connexion

Dans ce code modifié, la méthode getInstanceOfT accepte un argument de type Class, qui représente le type réel de l'objet à créer. La méthode newInstance() sur l'objet Class crée ensuite une instance de ce type et la renvoie.

Gestion des exceptions :

Il est important de noter que vous aurez besoin pour ajouter la gestion des exceptions à votre code, car newInstance() peut lancer une InstantiationException ou IllegalAccessException.

Runtime Type :

Passer le type réel comme argument est nécessaire car le type de T n'est pas connu au moment de la compilation. Après la compilation, le code d'octet ne contient aucune information sur le type réel, il doit donc être fourni explicitement au moment de l'exécution.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal