Как правило, я видел, как люди используют литерал класса следующим образом:
Class<Foo> cls = Foo.class;
Но что, если тип является общим, например, Список? Это отлично работает, но есть предупреждение, так как список должен быть параметризован:
Class<List> cls = List.class
Так почему бы не добавить <?>
? Ну, это вызывает ошибку несоответствия типов:
Class<List<?>> cls = List.class
Я подумал, что что-то вроде этого будет работать, но это просто простая синтаксическая ошибка:
Class<List<Foo>> cls = List<Foo>.class
Как я могу получить Class<List<Foo>>
статически, например используя литерал класса?
Я мог бы использовать @SuppressWarnings("unchecked")
, чтобы избавиться от предупреждений, вызванных непараметрическим использованием List в первом примере, Class<List> cls = List.class
, но я бы не стал.
Есть предложения?