如何将ListModel强制转换为DefaultListModel ?!我执行以下操作,并收到此错误消息,DefaultListModel portalListModel = (DefaultListModel) portalList.getModel();C:\Documents and Settings\...\myfile.java:728: warning: [rawtypes] found raw type: DefaultListModel DefaultListModel portalListModel = (DefaultListModel) portalList.getModel();missing type arguments for generic class DefaultListModel<E>where E is a type-variable:E extends Object declared in class DefaultListModel我尝试了以下方法DefaultListModel<E> portalListModel = (DefaultListModel) portalList.getModel();我觉得这是一个愚蠢的问题,但是我完全被这个新的通用事物所迷惑!请帮帮我! 最佳答案 Java集合的工作方式是可以使用集合类型的对象存储一大堆对象。在引入泛型之前,您可以将任何对象存储在Collection中,然后当您想从集合中删除这些Object时必须执行强制转换。List myList = new ArrayList();myList.add("string");myList.add(new MyValueClass(42, "identifying string"));那是完全可以接受的代码。如果要遍历对象,可以这样进行:Iterator it = myList.iterator();while (it.hasNext()) { String str = (String) it.next(); // NOTE: This will work the first time, but throw a ClassCastException when it gets to the second item.}在Java 1.5中,泛型在插入列表时提供了编译时类型检查。因此,现在,如果将myList声明为List<String>,则当您尝试将类型为MyValueClass的对象添加到列表时,上面的第一段代码将在编译时失败。在Java 1.7中,DefaultListModel是通用的。因此,当您调用portalList.getModel()时,您将取回包含某种对象类型的DefaultListModel(这是<E>;它是实际对象类型的占位符。)在上面的例如,List<String>是String的替代。因此,如果您的E对象的portalList成员是包含一堆model对象的DefaultListModel,那么您的声明应类似于:DefaultListModel<MyValueClass> portalListModel = portalList.getModel();请参见DefaultListModel API doc。关于java - 在Java 7中从ListModel转换为DefaultListModel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7831381/ 10-10 14:34