Arraylist:使用未经检查或不安全的操作

时间:2018-07-09 16:21:07

标签: android casting warnings unchecked

我的应用程序中有两个警告,阻止我“使用未经检查或不安全的操作”。我试图理解另一篇文章,但我完全不了解发生了什么,所以我仍处于起点...

我的Adapter类中的一个(“(ArrayList)results.values”中的警告):

arrayList = (ArrayList<Sound>) results.values;

enter image description here

另一个是我正在使用arraylist的“活动”中的另一个警告(警告在“ Collections.sort”上):

        Collections.sort(names);

enter image description here

您能解释一下这是什么意思,以及如何解决吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

results.values的类型显然是Object,因此将其强制转换为ArrayList<Sound>是危险的,因为其运行时类型可能与此类型不兼容。如果result.values始终是ArrayList<Sound>,并且您可以更改其类型,则只需将其更改为ArrayList<Sound>。如果您绝对不能更改类型,并且绝对确定强制转换在运行时有效,则可以在该行上方添加@SuppressWarnings("unchecked")以禁止显示警告。

我不知道您摘录中的names类型是什么,但是由于未指定参数类型,其compareTo()方法很可能具有类似的不安全类型转换。寻找类似于this question的问题。