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