amelentev / java-oo

Java Operator Overloading
http://amelentev.github.io/java-oo/
268 stars 31 forks source link

Overload === for equals() #44

Open cchudant opened 7 years ago

cchudant commented 7 years ago

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

ghost commented 7 years ago

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)))
elect86 commented 7 years ago

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

amelentev commented 7 years ago

=== 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 API1. But Eclipse and IntelliJ will require major hacks.

Maaartinus commented 7 years ago

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 ==.