当引用以下示例时,E和Object类型之间有什么区别?
List接口有两个方法,Add(E e)和Remove(Object obj)。
如何决定为每种方法使用E或Object?
另一种说法是,在编写自己的书面方法的标题时,如何知道是使用E还是Object?
答案 0 :(得分:0)
集合框架坚持如下规则:如果任意Object
可能会破坏集合以供将来使用,则使用E
;否则使用Object
。
例如,从Integer
删除List<String>
是无操作,因此允许;将Integer
添加到List<String>
会在将来导致ClassCastException
,因此不允许这样做。