为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

BIG阳 2022-07-14 10:20:45
我在构建项目时收到此消息:...\listadapter\MyAdapter.java:使用未经检查或不安全的操作。使用 -Xlint:unchecked 重新编译以获取详细信息。这行代码会发生这种情况:@Override    protected void publishResults(CharSequence constraint, FilterResults results) {        beanList = (ArrayList<Bean>) results.values;        notifyDataSetChanged();    }我不知道该怎么做。
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

那是因为您正在转换为泛型类型,而编译器不知道这种转换是否合法。如果您results.values 不是 ArrayList 的实例,则这行代码将失败并出现 ClastCastException。但如果是,编译器将转换该值,但它无法检查泛型参数的类型是什么,并且如果您的变量包含带有字符串的 ArrayList,您的代码行不会失败,但它会在另一行,您正在从列表中读取的位置。如果您 100% 确定它将是 Bean 的 ArrayList,您可以取消此警告(通过使用@SuppressWarnings("unchecked")



查看完整回答
反对 回复 2022-07-14
?
智慧大石

TA贡献1946条经验 获得超3个赞

您可以尝试使用捕获异常的 try catch 方法,或者您可以为这个问题创建一个新的异常,因为您可以创建一个扩展异常的类,您可以在此处阅读有关它的更多信息:如何创建自定义异常



查看完整回答
反对 回复 2022-07-14
  • 2 回答
  • 0 关注
  • 251 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信