Просматривая этот вопрос: "Проверка наличия объекта в связанном списке", я понял, что пользователь пытается передать аргумент String методу contains LinkedList типа LinkedList:
LinkedList<LinkedList> list = new LinkedList<LinkedList>();
list.contains("String");
Это не вызывает никакой ошибки компиляции, потому что метод 'contains' принимает java.lang.Object и передает ему значение строки.
Итак, просто из любопытства, я хотел понять, почему этот метод был выбран для принятия "Объекта", когда он мог быть ограничен, чтобы принимать только тип списка (точно так же, как добавить). Разве это не побеждает всю цель Generics, то есть "более сильные проверки типа во время компиляции"?