У меня есть 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>
?
Спасибо заранее!