Wpisz bezpieczeństwo: niesprawdzone rzutowanie z obiektu na listę <MojObject>
Mam ListView wymieniający niestandardowy obiekt (powiedzmyMyObject
).
Chcę filtrować go dynamicznie przezEditText
więc musiałem wdrożyćgetFilter()
za pomocą metody publicationResults:
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
MyObjectAdapter.this.setItems((List<MyObject>) results.values);
MyObjectAdapter.this.notifyDataSetChanged();
}
W tym momencie Eclipse narzeka:Type safety: Unchecked cast from Object to List<MyObject>
Jestem pewien, że ta obsada zawsze będzie prawdziwa, ale Eclipse sugeruje tylko dodanie@SuppressWarnings("unchecked")
ale jestem całkowicie przeciwnySuppressWarnings
ponieważ to tylko ukrywanie problemu, a nie rozwiązanie ...
Próbowałem dodać:
if(results.values instanceof List<MyObject>)
Ale Eclipse znowu narzeka, a to nic nie rozwiązuje ...
Cannot perform instanceof check against parameterized type List<MyObject>. Use the form List<?>
Wiem, że casting będzie zawsze poprawny, ale jest to właściwy sposób na upewnienie się co do koduresults.values
jest w rzeczywistości aList<MyObject>
?
Z góry dziękuję!