我在構建項目時收到此消息:...\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
提交
取消