История изменений
Исправление hummer, (текущая версия) :
А зачем делать
List<T> animals
, гдеT extends Animal
, когда можно сделатьList<Animal>
?
Менее жёстка привязка к Animal. Во время объявления переменной типа Cage<T extends Animal>
можно указать более конкретный, но всё ещё абстрактный T. Например T может быть млекопитающим или каким-то другим видом. Проблему кошек с собаками это не решит, но всё таки сделает работу с животными лучше. Например если мы работаем с ними на уровне млекопитающих, будет гораздо меньше случаев необходимости привидения к конкретному типу конкретного животного.
Исходная версия hummer, :
А зачем делать
List<T> animals
, гдеT extends Animal
, когда можно сделатьList<Animal>
?
Менее жёстка привязка к Animal. Во время объявления переменной типа Cage<T extends Animal>
можно указать более конкретный T. Например T может быть млекопитающим или каким-то другим видом. Проблему кошек с собаками это не решит, но всё таки сделает работу с животными лучше. Например если мы работаем с ними на уровне млекопитающих, будет гораздо меньше случаев необходимости привидения к конкретному типу конкретного животного.