Почему не Collection.remove(Object o) generic?
Кажется, что Collection<E>
может иметь boolean remove(E o);
Затем, когда вы случайно попытаетесь удалить (например) Set<String>
вместо каждой отдельной строки из Collection<String>
, это будет ошибкой времени компиляции вместо проблемы с отладкой позже.