Забезпечення реалізації за замовчуванням порівнянняTo, яка використовує впорядкування вихідного коду - це нормально; зробити його остаточним було помилковим кроком з боку Сонця. Порядковий номер вже враховує порядок декларування. Я згоден з тим, що у більшості ситуацій розробник може просто логічно впорядковувати свої елементи, але іноді хочеться, щоб вихідний код був організований таким чином, щоб читабельність та обслуговування були першорядними. Наприклад:
//===== SI BYTES (10^n) =====//
/** 1,000 bytes. */ KILOBYTE (false, true, 3, "kB"),
/** 106 bytes. */ MEGABYTE (false, true, 6, "MB"),
/** 109 bytes. */ GIGABYTE (false, true, 9, "GB"),
/** 1012 bytes. */ TERABYTE (false, true, 12, "TB"),
/** 1015 bytes. */ PETABYTE (false, true, 15, "PB"),
/** 1018 bytes. */ EXABYTE (false, true, 18, "EB"),
/** 1021 bytes. */ ZETTABYTE(false, true, 21, "ZB"),
/** 1024 bytes. */ YOTTABYTE(false, true, 24, "YB"),
//===== IEC BYTES (2^n) =====//
/** 1,024 bytes. */ KIBIBYTE(false, false, 10, "KiB"),
/** 220 bytes. */ MEBIBYTE(false, false, 20, "MiB"),
/** 230 bytes. */ GIBIBYTE(false, false, 30, "GiB"),
/** 240 bytes. */ TEBIBYTE(false, false, 40, "TiB"),
/** 250 bytes. */ PEBIBYTE(false, false, 50, "PiB"),
/** 260 bytes. */ EXBIBYTE(false, false, 60, "EiB"),
/** 270 bytes. */ ZEBIBYTE(false, false, 70, "ZiB"),
/** 280 bytes. */ YOBIBYTE(false, false, 80, "YiB");
Вищевказане впорядкування виглядає непогано у вихідному коді, але не так, як вважає автор, слід порівнювати To Бажана поведінка порівнянняДля того, щоб упорядкування здійснювалось за кількістю байтів. Впорядкування вихідного коду, яке могло б зробити це, погіршує організацію коду.
Як клієнту переліку, мені було байдуже, як автор організував їхній вихідний код. Однак я хочу, щоб їх алгоритм порівняння мав якийсь сенс. Sun надто непотрібно поставив розробників вихідного коду.