Почему compareTo в финале Enum в Java?
Предоставление реализации java-se compareTo по умолчанию, в enumerations котором используется упорядочение jre исходного кода, - это нормально; сделать openjdk это окончательным было ошибкой compareto со стороны Sun. Порядковый enumerations номер уже учитывает порядок compareto объявления. Я согласен с openjdk тем, что в большинстве ситуаций enum разработчик может просто enumerations логически упорядочить свои .java элементы, но иногда нужно, чтобы .java исходный код был организован java-se таким образом, чтобы удобочитаемость openjdk и обслуживание имели первостепенное javax значение. Например:
//===== 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");
Вышеупомянутый java-se порядок хорошо выглядит в enums исходном коде, но не так, как, по javax мнению автора, должен работать openjdk compareTo. Желаемое поведение core-java compareTo состоит в том, чтобы .java упорядочивать по количеству java-api байтов. Упорядочивание исходного java-se кода, которое могло бы сделать j2se это, ухудшает организацию enumerations кода.
Мне, как клиенту перечисления, наплевать, как j2se автор организовал свой исходный java-api код. Однако я хочу, чтобы java их алгоритм сравнения имел jdk какой-то смысл. Sun без надобности core-java связала разработчиков исходного compareto кода.
java
enums
comparable
compareto
Почему compareTo в финале Enum в Java?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.