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

Возможный дубликат:

По каким причинам Map.get (Object key) не является (полностью) универсальным

Почему Javas TreeSet <E> удалить (объект) не взять E

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

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

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

public boolean add(E e)

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

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

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