【问题标题】:found raw type, missing return arguments for generic class找到原始类型,缺少泛型类的返回参数
【发布时间】:2013-03-30 11:52:50
【问题描述】:

我不明白这个警告:

found raw type: javax.swing.DefaultListModel
missing type arguements for generic class javax.swing.DefaultListModel

Netbeans 似乎表明可以从alt-enter 找到更多信息,但什么也没有出现。类型应该是?

代码:

package net.bounceme.dur.nntp.swing;

import java.util.logging.Logger;
import javax.swing.DefaultListModel;

public class MessagesListModel extends DefaultListModel {
    private static final long serialVersionUID = 1L;
    private static final Logger LOG = Logger.getLogger(MessagesListModel.class.getName());

    @Override
    @SuppressWarnings("unchecked")
    public void addElement(Object element) {
        super.addElement(element);
    }

}

【问题讨论】:

  • 一个完整的例子可以在here找到。

标签: java swing class generics netbeans


【解决方案1】:

DefaultListModel 是来自 Java 7generic type

您应该使用DefaultListModel<ClassName> 而不是DefaultListModel

通常,这更安全,因为您指定了应该插入和不应该插入到列表中的内容。所以如果你犯了错误,编译器就会报错。

【讨论】:

  • 这就是我首先扩展它的原因。好的,很高兴知道:)
【解决方案2】:

Java 7 DefaultListModel 被视为通用类。见DefaultListModel。并且在扩展它时,您没有为您正在扩展的 DefaultListModel 提供泛型类型。这就是您的 IDE 警告您的原因。
您可以忽略此警告。或作为替代方案,您可以提供一些 Type parameter 给它,例如 <Integer> <String> 或任何东西......例如。

public class MessagesListModel extends DefaultListModel<String>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 2016-09-16
    相关资源
    最近更新 更多