<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Oct 9, 2018 at 12:15 PM <<a href="mailto:forax@univ-mlv.fr" target="_blank">forax@univ-mlv.fr</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:#000000"><blockquote style="border-left:2px solid #1010ff;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt"><div><span style="font-size:12pt">We have a rich API for building Comparators. I would expect most non-legacy implementations of Comparable to implement their 'compareTo' method by delegating to a Comparator. And you don't want to build the Comparator each time the 'compareTo' method gets called, so you'll probably stash it in a field.</span><br></div><div><br></div><div>I'm curious about what you'd expect someone to put inside their 'compareTo' method body, if not an invocation of Comparator.compare. (Of course they can roll their own int-fiddling logic, but why when the Comparator API is sitting right there?)</div></blockquote><div>I don't expect a lot of people to write their own compareTo because not a lot of classes have a natural order</div></div></blockquote><div><br></div><div>Ratio of Comparator to Comparable implementations in our codebase seems to be less than 3:1. That's not that big a difference imho.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:#000000"><div> (that the reason why there is no support of Comparable on a record, no ?)<br></div></div></blockquote><div><br></div><div>I don't think so. I think the reason is that the default behavior we'd have to use is regularly enough not what the user wants. And you don't want program behavior to change when fields are reordered in the source file. imho, the Comparator construction methods added in 8 are such an ideal way to configure comparison behavior that a language feature really has no way to beat them.</div><div><br></div></div>-- <br><div dir="ltr" class="m_-6425263577239570002gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div style="line-height:1.5em;padding-top:10px;margin-top:10px;color:rgb(85,85,85);font-family:sans-serif"><span style="border-width:2px 0px 0px;border-style:solid;border-color:rgb(213,15,37);padding-top:2px;margin-top:2px">Kevin Bourrillion |</span><span style="border-width:2px 0px 0px;border-style:solid;border-color:rgb(51,105,232);padding-top:2px;margin-top:2px"> Java Librarian |</span><span style="border-width:2px 0px 0px;border-style:solid;border-color:rgb(0,153,57);padding-top:2px;margin-top:2px"> Google, Inc. |</span><span style="border-width:2px 0px 0px;border-style:solid;border-color:rgb(238,178,17);padding-top:2px;margin-top:2px"> <a href="mailto:kevinb@google.com" target="_blank">kevinb@google.com</a></span></div></div></div></div></div></div></div></div>