Typiquement, j'ai vu des gens utiliser la classe littérale comme ceci :
Class<Foo> cls = Foo.class;
Mais que faire si le type est générique, par exemple List ? Cela fonctionne bien, mais il y a un avertissement puisque List doit être paramétré :
Class<List> cls = List.class
Alors pourquoi ne pas ajouter un <?>
? Eh bien, cela provoque une erreur de correspondance de type :
Class<List<?>> cls = List.class
Je pensais que quelque chose comme ça fonctionnerait, mais c'est juste une erreur de syntaxe :
Class<List<Foo>> cls = List<Foo>.class
Comment puis-je obtenir un Class<List<Foo>>
de manière statique, par exemple en utilisant le littéral de la classe ?
I podría utiliser @SuppressWarnings("unchecked")
pour se débarrasser des avertissements causés par l'utilisation non paramétrée de List dans le premier exemple, Class<List> cls = List.class
mais je ne préfère pas.
Des suggestions ?