* Jason Mehrens: > The initial implementation was only optimized to call into > String.compare if the arguments were string [1]. I proposed the > current code a general form to catch java.nio.CharBuffer and any new > JDK implementations of CharSequence + Comparable. > > Naively, I lean towards "- CharSequence interface specification > should be extended to require Comparable CharSeqeunces to implement > lexicographical ordering".
There are natural lexicographical orderings, unfortunately. One is according to UCS-2 (currently implemented by String and specified by CharSequence.compare), and the other one according UTF-16, for compatibility with the lexicographical ordering according to Unicode codepoints (which is also compatible with lexicographical ordering of bytes after UTF-8 encoding). There must be implementations of CharSequence out there which implement UTF-16 ordering.