我的应用程序中有两个警告,阻止我“使用未经检查或不安全的操作”。我试图理解另一篇文章,但我完全不了解发生了什么,所以我仍处于起点...
我的Adapter类中的一个(“(ArrayList)results.values”中的警告):
arrayList = (ArrayList<Sound>) results.values;
另一个是我正在使用arraylist的“活动”中的另一个警告(警告在“ Collections.sort”上):
Collections.sort(names);
您能解释一下这是什么意思,以及如何解决吗?
感谢您的帮助。
答案 0 :(得分:0)
results.values
的类型显然是Object
,因此将其强制转换为ArrayList<Sound>
是危险的,因为其运行时类型可能与此类型不兼容。如果result.values
始终是ArrayList<Sound>
,并且您可以更改其类型,则只需将其更改为ArrayList<Sound>
。如果您绝对不能更改类型,并且绝对确定强制转换在运行时有效,则可以在该行上方添加@SuppressWarnings("unchecked")
以禁止显示警告。
我不知道您摘录中的names
类型是什么,但是由于未指定参数类型,其compareTo()
方法很可能具有类似的不安全类型转换。寻找类似于this question的问题。