В предыдущей статье мы разобрались, зачем нужен самореферентный дженерик в Enum: чтобы использовать дочерний тип при реализации интерфейс родителя. Это довольно экзотический случай. Сегодня я покажу более практичный пример того, как универсальные методы упростили работу с иерархическими и неизменяемыми переменными. .

Дано: класс доставки с информацией о доставке. Метод отмены делает недействительным…