简体   繁体   English

使用defaultlistmodel作为参数的通用方法语法

[英]generic method syntax using defaultlistmodel as an argument

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);
    }
}



how can i write the above without getting an unchecked cast warning and without using @suppress? 我如何在没有得到未经检查的强制转换警告和不使用@suppress的情况下编写以上内容?

You are not doing anything worng. 你什么都没做。 The reason for unchecked cast warning is because the DefaultListModel toArray() method is not generic . 取消选中警告的原因是因为DefaultListModel toArray()方法不是通用的。 it returns an Object array which when you type cast to your generic class array T[] , compiler gives the warning. 它返回一个Object数组,当您将类型转换为通用类数组T[] ,编译器会发出警告。 You can avoid the warnings by putting the below line above your method sortList:- 您可以通过将以下行放在方法sortList上方来避免警告:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM