величайшей трагедией интерфейса Comparable является то, что в коллекции объектов реализующих этот интерфейс вовсе не гарантируется одинаковость реализации .compareTo(...) у всех объёктов коллекции. в этом плане использование внешнего компаратора куда меньше режет глаз истинным перфекционистам
@anonymous и? ты думаешь я про это не знаю? меня беспокоит не ко- и контрвариантность, а то что в зависимости от аргументов конструктора два объёкта типа final class Document implements Comparable<Document> могут сравнение производить по разным правилам. Например, по разным полям из мапы
@mugiseyebrows Comparable — SAM, какая трагедия может быть более ужасной для интерфейса с одним методом (даже дефолтных нет!), чем описанная мной?