Karşılaştırma için kaynak kodu sıralaması kullanan varsayılan bir uygulama sağlamak iyidir; final yapmak Sun için bir yanlış adımdı. Sıra zaten bildirim sırasını hesaba katıyor. Çoğu durumda bir geliştiricinin öğelerini mantıksal olarak sıralayabileceğini kabul ediyorum, ancak bazen kaynak kodun okunabilirliği ve bakımı en önemli hale getirecek şekilde düzenlenmesini istiyor. Örneğin:
KILOBYTE (false, true, 3, "kB"),
MEGABYTE (false, true, 6, "MB"),
GIGABYTE (false, true, 9, "GB"),
TERABYTE (false, true, 12, "TB"),
PETABYTE (false, true, 15, "PB"),
EXABYTE (false, true, 18, "EB"),
ZETTABYTE(false, true, 21, "ZB"),
YOTTABYTE(false, true, 24, "YB"),
KIBIBYTE(false, false, 10, "KiB"),
MEBIBYTE(false, false, 20, "MiB"),
GIBIBYTE(false, false, 30, "GiB"),
TEBIBYTE(false, false, 40, "TiB"),
PEBIBYTE(false, false, 50, "PiB"),
EXBIBYTE(false, false, 60, "EiB"),
ZEBIBYTE(false, false, 70, "ZiB"),
YOBIBYTE(false, false, 80, "YiB");
Yukarıdaki sıralama, kaynak kodda iyi görünüyor, ancak yazar, CompareTo'nun çalışması gerektiğine inanmıyor. Arzu edilen CompareTo davranışı, sıralamanın bayt sayısına göre olmasıdır. Bunun gerçekleşmesini sağlayacak kaynak kodu sıralaması, kodun organizasyonunu bozar.
Bir numaralandırma müşterisi olarak yazarın kaynak kodunu nasıl düzenlediğini daha az umursayamazdım. Yine de karşılaştırma algoritmalarının bir anlam ifade etmesini istiyorum. Sun, kaynak kodu yazarlarını gereksiz yere zor durumda bıraktı.