У меня есть ListView со списком настраиваемого объекта (скажем, MyObject
).
Я хочу динамически фильтровать его через EditText
, поэтому мне пришлось реализовать getFilter()
с помощью метода publishResults:
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
MyObjectAdapter.this.setItems((List<MyObject>) results.values);
MyObjectAdapter.this.notifyDataSetChanged();
}
В этот момент Eclipse жалуется: Type safety: Unchecked cast from Object to List<MyObject>
Я уверен, что это приведение всегда будет верным, но Eclipse предлагает только добавить @SuppressWarnings("unchecked")
, но я категорически против SuppressWarnings
, потому что это только скрывает проблему, а не решение ...
Я пробовал добавить:
if(results.values instanceof List<MyObject>)
Но Eclipse снова жалуется, и это ничего не решает ...
Cannot perform instanceof check against parameterized type List<MyObject>. Use the form List<?>
Я знаю, что преобразование всегда будет правильным, но как правильно сделать код, чтобы убедиться, что results.values
на самом деле List<MyObject>
?
Заранее спасибо!