我在構(gòu)建項目時收到此消息:...\listadapter\MyAdapter.java:使用未經(jīng)檢查或不安全的操作。使用 -Xlint:unchecked 重新編譯以獲取詳細信息。這行代碼會發(fā)生這種情況:@Override protected void publishResults(CharSequence constraint, FilterResults results) { beanList = (ArrayList<Bean>) results.values; notifyDataSetChanged(); }我不知道該怎么做。
2 回答

繁花不似錦
TA貢獻1851條經(jīng)驗 獲得超4個贊
那是因為您正在轉(zhuǎn)換為泛型類型,而編譯器不知道這種轉(zhuǎn)換是否合法。如果您results.values
不是 ArrayList 的實例,則這行代碼將失敗并出現(xiàn) ClastCastException。但如果是,編譯器將轉(zhuǎn)換該值,但它無法檢查泛型參數(shù)的類型是什么,并且如果您的變量包含帶有字符串的 ArrayList,您的代碼行不會失敗,但它會在另一行,您正在從列表中讀取的位置。如果您 100% 確定它將是 Bean 的 ArrayList,您可以取消此警告(通過使用@SuppressWarnings("unchecked")

智慧大石
TA貢獻1946條經(jīng)驗 獲得超3個贊
您可以嘗試使用捕獲異常的 try catch 方法,或者您可以為這個問題創(chuàng)建一個新的異常,因為您可以創(chuàng)建一個擴展異常的類,您可以在此處閱讀有關(guān)它的更多信息:如何創(chuàng)建自定義異常。
添加回答
舉報
0/150
提交
取消