Maison >Java >javaDidacticiel >Comment puis-je obtenir un littéral de classe pour un type générique en Java ?
Les littéraux de classe sont couramment utilisés pour représenter les types de manière statique. Cependant, des difficultés surviennent lorsqu'il s'agit de types génériques.
En règle générale, pour les types non génériques, les littéraux de classe peuvent être obtenus en utilisant la syntaxe Foo.class. Lors de l'application de cela à des types génériques comme List, un avertissement est généré en raison de l'absence de paramètres de type. Toute tentative d'ajout d'un caractère générique (?) pour autoriser des paramètres de type inconnus entraîne une erreur d'incompatibilité de type. De plus, l'utilisation de la syntaxe List
Le problème provient de la fonctionnalité d'effacement de type de Java. Les types génériques sont convertis en types bruts lors de la compilation, ce qui signifie que leurs arguments de type sont perdus au moment de l'exécution. Par conséquent, les types paramétrés n'ont pas leur propre représentation d'exécution et n'ont pas d'objets Class correspondants.
Par conséquent, il est impossible d'obtenir un littéral de classe pour un type paramétré tel que List
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!