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ę!

questionAnswers(4)

yourAnswerToTheQuestion