Java Collection LinkedList函数参数类型

vik*_*.rk 5 java generics collections

可能重复:
为什么Java Collections没有删除泛型方法?

我注意到,很少有LinkedList操作采用Generic参数类型E,而少数采用'Object'作为参数.对于前者,

add(E e) 
remove(Object o) 
Run Code Online (Sandbox Code Playgroud)

是否有特定的理由这样做?为什么不使'删除'采用泛型类型E.(我知道在类型擦除后无关紧要,但只是想知道).

jon*_*one 0

add 和remove 方法都是从Collection 接口继承的。没有用通用参数来改进删除方法,大概是因为它并不重要。删除不会影响集合的类型安全,当您更改地球上最流行的 API 之一时,更改越少越好。您会发现 contains 方法也遭受了同样的命运。