为什么在 中Collection<T>
,方法 booleanremove(Object o)
未定义为boolean remove(T o)
?
例如,当我有一个Collection<String> list
我确定我不想这样做list.remove(new Date())
时。
编辑:已经解决:为什么 Java Collections 删除方法不是通用的?
问题2:
当我上课时:
class Value {
Object getValue() {
// return something;
}
}
然后我想实现一个新的酷列表:
class CoolList<T extends Value> implements Collection<T> {
// ...
@Override
public boolean remove(Object o) {
try {
T value = (T) o; // I mean the cast here
removeInternal(value);
} catch (ClassCastException e) {
return false;
}
}
}
如何在不产生警告(未经检查的演员表)且不使用@SuspressWarning 的情况下进行干净演员表,这甚至可能吗?
编辑:在内部我希望列表能够恢复已删除的项目,因此我在内部有一个List<T> deletedItems
. 因此 removeInternal() 方法将要删除的项目附加到内部 deletedItems 列表中,然后将其删除,因此我需要某种类型的演员表。
谢谢你。