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)
{
.....
}