Draft proposal: allow the use of relational operators on Comparable classes (original) (raw)
Vilya Harvey vilya.harvey at gmail.com
Thu Mar 12 10:02:31 PDT 2009
- Previous message: Draft proposal: allow the use of relational operators on Comparable classes
- Next message: Draft proposal: allow the use of relational operators on Comparable classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2009/3/12 Kevin Bourrillion <kevinb at google.com>
On Wed, Mar 11, 2009 at 2:11 PM, Neal Gafter <neal at gafter.com> wrote:
Vilya-
I suspect that if you narrowed the scope of this proposal to just enum types, it would have a much better chance of getting accepted for project Coin. To the general proposal, I believe the problem of conflicting meanings of <=, >= and == make it a non-starter.
I tried implementing the change & it was remarkably simple - without having looked at any of the openjdk code before, it took me just one evening; hats off to the compiler designers! However even the first bit of example code I wrote to test it with looked a bit strange:
String a, b; ... if (a < b) System.out.println("a < b"); else if (a > b) System.out.println("a > b"); else if (a == b) System.out.println("a == b"); else System.out.println("a.compareTo(b) == 0")';
It seems really odd that the else clause is actually reachable, but of course it is. I suspect that would catch a lot of people out.
So given that experience and having read everyone's comments, I've come to the conclusion that the proposal would only make sense if it was part of a larger plan that included changing the meaning of == and !=. That would be such a breaking change that I doubt it will ever happen, much less in the jdk7 time frame, so I'm withdrawing the proposal.
Thanks a lot to all of you who provided me with feedback!
Vil.
- Previous message: Draft proposal: allow the use of relational operators on Comparable classes
- Next message: Draft proposal: allow the use of relational operators on Comparable classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]