предупреждение: [rawtypes] найден необработанный тип: DefaultListModel - PullRequest
3 голосов
/ 19 октября 2011

Я получаю это предупреждение от компилятора, который вообще не имеет смысла (по крайней мере, для меня).По сути, он хочет, чтобы я назначил тип DefaultListModel, который сам по себе является типом объекта!Я получаю кучу этих предупреждений по всему моему коду!

C:\Documents and Settings\...\filename.java:345:warning: [rawtypes] found raw type: DefaultListModel
DefaultListModel lm = (DefaultListModel) jList_DataSetList.getModel();
missing type arguments for generic class DefaultListModel<E>
where E is a type-variable:
E extends Object declared in class DefaultListModel

Это еще одно сообщение, откуда я не знаю, откуда оно взято!*

Ответы [ 3 ]

10 голосов
/ 19 октября 2011

Поскольку Java 7, DefaultListModel является универсальным типом, таким как List, Set и т. Д. Он ожидает тип: DefaultListModel<SomeClass> вместо необработанного DefaultListModel.

Это позволяет работать более безопасным для типов способом, потому что вы не сможете вставить String в модель списка, которая должна содержать экземпляры Integer. И вам не придется приводить к Integer при получении элемента из модели.

То же самое верно для JList, который теперь также является JList строк или JList целых чисел, вместо того, чтобы быть необработанным JList.

Прочтите учебник об общих шаблонах и посмотрите на javadoc DefaultListModel .

1 голос
/ 29 июня 2014

Попробуйте @SuppressWarnings ("rawtypes")

Это особенно ужасное значение по умолчанию при работе с отражением или при работе с интерфейсными методами, где точный тип универсального объекта должен быть скрыт.Я начал менять ссылки на класс на Class, когда вспомнил @ Suppress.

1 голос
/ 28 декабря 2011

И если кто-то ищет эти предупреждения в сгенерированном коде NetBeans IDE (7.0.1) (для JList и т. Д.), И вы не знаете, как его исправить, выполните следующие действия:

  1. Перейти к редактору графического интерфейса пользователя (Matisse Builder).
  2. Выбрать (щелкнуть) компонент (JList и т. Д.)
  3. Перейти в окно «Свойства» и перейти на вкладку «Код»
  4. Запишите в свойство Type Parametres.Конечно, «Нечто» было бы Строкой или вашим объектом ...
...