java-oo icon indicating copy to clipboard operation
java-oo copied to clipboard

Overload === for equals()

Open cchudant opened this issue 8 years ago • 4 comments

Can you overload a new operator === for equals() ? I mean: var1.equals(var2) -> var1 === var2 That world be great if that can be done!

cchudant avatar Feb 14 '17 22:02 cchudant

just doing that is going to hurt if var1 is null, but it should also evaluate to true if both are null, so

(var1==var2 || (var1!=null && var1.equals(var2)))

ghost avatar Feb 21 '17 21:02 ghost

If I may, I tried java-oo once looking for operator overloading... but when I discovere Kotlin, it was another different world...

I just accept that java is what it is.. and I spent so much time in workarounds for its limitations that I regret I didn't try earlier to look around for alternatives..

Give a try to Kotlin (100% java compatible), you won't regret (Sorry for the ot!)

my 2 cents

elect86 avatar Feb 22 '17 09:02 elect86

=== is a new lexeme for a Java Parser. But java-oo works only after parsing stage (yet), so adding completely new syntactic constructs will require much work. I don't have time for this, but I'm open to contributions. Probably it is possible to modify javac parser via javac 8 Plugin API[1]. But Eclipse and IntelliJ will require major hacks. [1]: https://docs.oracle.com/javase/8/docs/jdk/api/javac/tree/com/sun/source/util/Plugin.html

amelentev avatar Feb 22 '17 21:02 amelentev

Could something like ~== work? It's two legal tokens ~ and == in an illegal arrangement. It resembles ≅ (APPROXIMATELY EQUAL TO, U+2245), which is semantically fine as equals is a weaker relation than ==.

Maaartinus avatar Feb 23 '17 03:02 Maaartinus