Hello, Recently noticed that RFE JDK-8181769 (Introduce interface with type-safe equals) is closed as duplicate of some other RFE. However I think these RFEs are unrelated. The idea behind JDK-8181769 is NOT to supply custom equality functions to collections, but to provide means to enforce compile-time type checking.
E.g. Having Long a = ... String b = ... `a.equals(b)` is OK for javac, but this is most likely logical error because it always evaluates to false; `a.compareTo(b) == 0` causes compilation error and hence prevents logical error; `a.isEqualTo(b)` is actually the proposal. it should cause compilation error as 'compareTo' does, but in contract to `compareTo` 1) it could be more efficient than `compareTo` because here we do not care Which object is greater or less than the other one; 2) `isEqualTo` could also be used for classes that does not have any sense to implement `Comparable<T>` interface, e.g. `java.util.List`, `java.util.Set`, `java.util.Map`, complex numbers etc. Therefore I would ask to reopen this RFE. Thanks, Dmytro