Maison > développement back-end > C++ > Comment puis-je appeler une méthode Java générique avec des arguments de type d'exécution ?

Comment puis-je appeler une méthode Java générique avec des arguments de type d'exécution ?

Patricia Arquette
Libérer: 2024-12-30 20:25:10
original
184 Les gens l'ont consulté

How Can I Invoke a Generic Java Method with Runtime Type Arguments?

Appel de méthodes génériques avec des arguments de type d'exécution

Problème :

Vous souhaitez invoquer une méthode générique de manière dynamique, en spécifiant l'argument de type au moment de l'exécution. Cependant, Java ne permet pas la résolution directe des arguments de type dans les invocations de méthodes génériques.

Solution :

Pour y parvenir, utilisez la réflexion Java :

// Get the generic method
Method<T> method = MyTestClass.class.getMethod("myGenericMethod");

// Create a type array for the type arguments
Type[] typeArguments = { new TypeReference<T>() {}.getType() };

// Make the generic method specific
Method<T> specificMethod = method.makeGenericMethod(typeArguments);

// Invoke the specific method with an instance and parameters
T result = specificMethod.invoke(myInstance, parameters);
Copier après la connexion

Explication :

  1. Obtenir le Générique Méthode : Utilisez getMethod() pour récupérer la méthode générique de la classe.
  2. Créez un tableau de types : Créez un tableau Type[] pour contenir les arguments de type pour la méthode générique.
  3. Générer la méthode spécifique : Utilisez makeGenericMethod() pour créer une nouvelle instance de méthode avec le type spécifié arguments.
  4. Invocation : Invoquez la méthode spécifique à l'aide de Ensure() avec l'instance et les paramètres.

Remarques supplémentaires :

  • Vous pouvez utiliser newInstance() pour créer une nouvelle instance du type générique à partir du interface.
  • La réflexion permet une résolution dynamique des arguments de type au moment de l'exécution.
  • Les génériques fournissent une vérification de type au moment de la compilation, mais la réflexion permet une flexibilité dans les scénarios dynamiques.

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