使用defaultlistmodel作为参数的泛型方法语法

时间:2014-09-08 18:43:47

标签: java swing generics methods defaultlistmodel

DefaultListModel<String> strings = new DefaultListModel<String>();
DefaultListModel<Integer> integers = new DefaultListModel<Integer>();

private <T> void sortList(DefaultListModel<T> defaultListModel)
{
    T objects[] = (T[])defaultListModel.toArray(); 

    defaultListModel.clear();

    Arrays.sort(objects);

    for (T object: objects)
    {
        defaultListModel.addElement(object);
    }
}


如何在不获取未经检查的强制警告且不使用@suppress的情况下编写上述内容?

1 个答案:

答案 0 :(得分:0)

你没有做任何事情。未经检查的强制转换警告的原因是因为DefaultListModel toArray()方法不是通用的。它返回一个Object数组,当你输入强制转换为泛型类数组T[]时,编译器会发出警告。您可以通过将以下行放在方法sortList上方来避免警告: -

@SuppressWarnings("unchecked")
private <T> void sortList(DefaultListModel<T> defaultListModel)
{
      .....
}