カスタムオブジェクトをリストする 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>
どれですか?
前もって感謝します!