我有一个 ListView 列出了一个自定义对象(比如说MyObject
)。
我想通过一个动态过滤它,所以我必须用一个 publishResults 方法EditText
来实现一个: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>
?
提前致谢!