Typensicherheit: Deaktivierte Umwandlung von Objekt in Liste <MyObject>
Ich habe eine ListView, die ein benutzerdefiniertes Objekt auflistet (sagen wir malMyObject
).
Ich möchte es dynamisch durch einen Filter filternEditText
also musste ich ein implementierengetFilter()
mit einer publishResults-Methode:
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
MyObjectAdapter.this.setItems((List<MyObject>) results.values);
MyObjectAdapter.this.notifyDataSetChanged();
}
An dieser Stelle beschwert sich Eclipse:Type safety: Unchecked cast from Object to List<MyObject>
Ich bin mir sicher, dass diese Besetzung immer wahr sein wird, aber Eclipse schlägt nur vor, sie hinzuzufügen@SuppressWarnings("unchecked")
aber ich bin total dagegenSuppressWarnings
weil es nur das Problem verbirgt, keine Lösung ...
Ich habe versucht hinzuzufügen:
if(results.values instanceof List<MyObject>)
Aber Eclipse beklagt sich erneut und das löst nichts ...
Cannot perform instanceof check against parameterized type List<MyObject>. Use the form List<?>
Ich weiß, dass das Casting immer korrekt sein wird, aber was ist der richtige Weg, um den Code sicher zu machenresults.values
ist eigentlich einList<MyObject>
?
Danke im Voraus!