使用 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的情况下编写上述内容?

你没有做任何不好的事情。未选中的强制转换警告的原因是 默认列表模型 toArray() 方法不是泛型的。它返回一个 Object 数组,当您键入 cast 到泛型类数组时T[],编译器会给出警告。您可以通过将以下行放在方法排序列表上方来避免警告:-

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

相关内容

  • 没有找到相关文章

最新更新