Maison > Java > javaDidacticiel > Comment puis-je instancier des objets de types génériques en Java ?

Comment puis-je instancier des objets de types génériques en Java ?

Mary-Kate Olsen
Libérer: 2024-11-13 00:26:02
original
971 Les gens l'ont consulté

How Can I Instantiate Objects of Generic Types in Java?

Instanciation des génériques : dévoiler le secret

Dans le domaine de la programmation Java, les génériques offrent une immense flexibilité en permettant la déclaration de classes et de méthodes qui peut fonctionner sur différents types de données sans avoir besoin de conversions de type explicites. Cependant, instancier des objets de types génériques pose un défi qui peut paraître trivial à première vue, mais nous allons approfondir une solution qui prouve le contraire.

Considérez la déclaration de classe :

public class Abc<T> {
    public T getInstanceOfT() {
        // Here's where we aim to create an instance of T and return it.
    }
}
Copier après la connexion

Pour instancier un objet de type T dans la méthode getInstanceOfT, nous devons surmonter le manque d'informations sur le paramètre de type réel au moment de la compilation. Le bytecode Java ne conserve pas ces informations, les rendant inaccessibles sans disposition explicite.

La solution réside dans l'adoption des capacités dynamiques de Java. Nous pouvons modifier la méthode pour accepter la classe de type réelle comme argument :

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

En passant la classe de type réelle, illustrée dans Class au sein de la méthode, nous pouvons instancier dynamiquement un objet de ce type. Notez la nécessité de gérer les exceptions lors de l'utilisation de la méthode newInstance.

N'oubliez pas que l'instanciation de types génériques nécessite la fourniture explicite du type réel au moment de l'exécution car il reste inconnu au moment de la compilation. Relever ce défi dévoile la véritable nature des génériques et témoigne de la puissance et de la finesse de la programmation 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!

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