LINUX.ORG.RU

История изменений

Исправление 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 может быть млекопитающим или каким-то другим видом. Проблему кошек с собаками это не решит, но всё таки сделает работу с животными лучше. Например если мы работаем с ними на уровне млекопитающих, будет гораздо меньше случаев необходимости привидения к конкретному типу конкретного животного.