Java 警告:[rawtypes]找到原始类型:DefaultListModel

Java 警告:[rawtypes]找到原始类型:DefaultListModel,java,swing,generics,netbeans,jlist,Java,Swing,Generics,Netbeans,Jlist,我从编译器那里得到了这个警告,但它毫无意义(至少对我来说)。它基本上希望我为DefaultListModel分配一个类型,它本身就是一个对象类型!我在我的代码中收到了大量的警告 C:\Documents and Settings\...\filename.java:345:warning: [rawtypes] found raw type: DefaultListModel DefaultListModel lm = (DefaultListModel) jList_DataSetList.g

我从编译器那里得到了这个警告,但它毫无意义(至少对我来说)。它基本上希望我为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
C:\Documents and Settings\…\filename.java:345:警告:[rawtypes]找到原始类型:DefaultListModel
DefaultListModel lm=(DefaultListModel)jList_DataSetList.getModel();
泛型类DefaultListModel缺少类型参数
其中E是一个类型变量:
扩展类DefaultListModel中声明的对象
这是另一个我不知道是从哪里来的

C:\Documents and Settings\...\filename.java:897: warning: [rawtypes] found raw type: JList
private javax.swing.JList jList_DataSetList;
missing type arguments for generic class JList<E>
where E is a type-variable:
E extends Object declared in class JList
C:\Documents and Settings\…\filename.java:897:warning:[rawtypes]找到原始类型:JList
私有javax.swing.JList JList_DataSetList;
泛型类JList缺少类型参数
其中E是一个类型变量:
扩展类JList中声明的对象

提前感谢

自Java 7以来,
DefaultListModel
是一个泛型类型,如
List
Set
等。它需要一个类型:
DefaultListModel
,而不是原始的
DefaultListModel

这允许以更安全的方式工作,因为您将无法将字符串插入到假定包含整数实例的列表模型中。从模型中获取元素时,不必强制转换为整数

JList
也是如此,它现在也是字符串的
JList
或整数的
JList
,而不是原始的
JList


阅读,并查看。

如果有人在NetBeans IDE(7.0.1)生成的代码(用于JList等)中查找这些警告,但您不知道如何更正,请执行以下步骤:

  • 转到GUI编辑器(matisse builder)
  • 选择(单击)组件(JList等)
  • 转到“属性”窗口的“代码”选项卡
  • 将类型写入Parameters属性。当然,“某物”应该是字符串,或者你的对象
  • 尝试@SuppressWarnings(“rawtypes”)


    当使用反射或使用接口方法时,这是一个特别糟糕的默认值,在接口方法中,泛型对象的确切类型应该是隐藏的。当我想起@Suppress时,我开始将我的类引用更改为类。

    非常感谢您给出了准确而准确的答案!我引用的是旧的api文档,不知道您指给我的那个文档曾经存在过!你救了我一天!自从我将该补丁贡献给OpenJDK后,我在这里写了一篇关于它的博客: