Почему HashSet <E> не ограничивает тип аргумента E в contains () и remove () [duplicate]

Possible Duplicate:
What are the reasons why Map.get(Object key) is not (fully) generic
Why does Java's TreeSet<E> remove(Object) not take an E

Почему HashSet не ограничивает тип аргумента E здесь:

public boolean contains(Object o)
public boolean remove(Object o)

как это делает для add ()

public boolean add(E e)

Я имею в виду, что если компилятор обеспечивает добавление только объектов типа E, то набор не может содержать / удалять любые другие типы.

Ответы на вопрос(4)

Ваш ответ на вопрос