我已經交到了一些代碼來檢查SMS數據,並且存在使用矢量投過濾功能,即現在導致編譯警告:如何在使用帶有對象的矢量時解決「未選中的投射」?
Unchecked cast: 'java.lang.Object' to 'java.util.Vector<xxx.Event>'
在此位置:
values = (Vector<Event>) results.values;
^
required: Vector<Event>
found: Object
的代碼片段如下:
@Override
public Filter getFilter() {
return new Filter() {
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (results.count != 0) {
values = (Vector<Event>) results.values;
notifyDataSetChanged();
}
}
@Override
protected FilterResults performFiltering(CharSequence smsType) {
FilterResults results = new FilterResults();
Vector<Event> eventList = new Vector<>();
if (smsType.equals("ALL")) {
results.values = allEvents;
results.count = allEvents.size();
return results;
}
for (Event event : allEvents) {
if (event.getType().toString().equals(smsType)) {
eventList.add(event);
}
}
results.values = eventList;
results.count = eventList.size();
return results;
}
};
}
我已經在不同的SO解決方案環顧四周,如: this, this, this, this, this和 this。但我必須承認,他們只會造成更多的困惑。
此外,還有一些建議使用ArrayList而不是Vector,但與ArrayLists不同,該矢量的優點是。我不知道這是否重要。
而且沒有,我不想@SuppressWarnings
,而是試着去理解和解決乾淨利落地使用Java 8.問題
可能的重複:http://stackoverflow.com/questions/14642985/type-safety-unchecked-cast-from-object-to-listmyobject –
@VeneetReddy感謝您添加到已經很長的混淆列表! :) – not2qubit