我已经交到了一些代码来检查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