【发布时间】:2022-02-03 10:43:38
【问题描述】:
我有一个 ListView 列出了一个自定义对象(比如说MyObject)。
我想通过 EditText 动态过滤它,所以我必须使用 publishResults 方法实现 getFilter():
@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> 的正确方法?
提前致谢!
【问题讨论】:
标签: android listview casting filter custom-object