Я не понимаю, в чем польза дженериков с несвязанными подстановочными знаками. Общие шаблоны связанных подстановочных знаков с верхней границей extends Animal>
имеет смысл, потому что, используя полиморфизм, я могу работать с этим типом или коллекцией. Но какой смысл иметь дженерики, которые могут быть любого типа? Разве это не противоречит цели дженериков? Компилятор не находит конфликта, и после стирания типа будет похоже, что не использовались дженерики.