我在构建项目时收到此消息:...\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")
添加回答
举报
0/150
提交
取消