исправленный. Но некоторая информация о параметризации сохраняется во время выполнения, не все стирается;)

я объявлю Класс как поле:

Class fooClass;

Затмение дает мне предупреждение:

Класс является необработанным типом. Ссылки на универсальный тип Class должны быть параметризованы

Что это значит на практике? и почему я должен это сделать? Если я спрашиваю Eclipse для «быстрого решения», это дает мне:

Class<?> fooClass;

который, кажется, не добавляет большую ценность, но больше не дает предупреждение.

РЕДАКТИРОВАТЬ: Почему класс является общим? Не могли бы вы привести пример параметризации, то есть может ли быть допустимое использование чего-то другого, кроме<?> ?

РЕДАКТИРОВАТЬ: ВАУ! Я не осознал всю глубину этого. Я также наблюдал за Java Puzzler, и он определенно напугал меня по поводу медвежьих ловушек. Поэтому я всегда буду использовать

Class<MyString> myStringClass = MyString.class;

скорее, чем

Class myStringClass = MyString.class;

(Но, использовав Java с первого дня, я не заметил, когда Class стал универсальным);

ПРИМЕЧАНИЕ: я принял @oxbow_lakes, поскольку это имеет для меня смысл, но это явно очень сложная область. Я призываю всех программистов использовать конкретныеClass<MyString> скорее, чемClass, А такжеClass<?> гораздо безопаснее, чемClass.

Ответы на вопрос(5)

Ваш ответ на вопрос