On Sat, 27 Jan 2024 07:52:56 GMT, David Alayachew <d...@openjdk.org> wrote:
>> Adding a function to Objects in order to facilitate equality checking and >> enhance readability. You simply specify the 2 objects that you want to check >> for equality, and then provide the functions which will be used to provide >> the values that we will check for equality. > > David Alayachew has updated the pull request incrementally with one > additional commit since the last revision: > > Rather than reiterating the precondition, let's explain why the method > failed It can be used for general classes. See an example: public class Stuff { public int a, b; private static final MethodHandle EQUALS; static { var lookup = MethodHandles.lookup(); try { EQUALS = ObjectMethods.bootstrap(lookup, "equals", MethodHandle.class, "", lookup.findGetter(Stuff.class, "a", int.class), lookup.findGetter(Stuff.class, "b", int.class)); } catch (ReflectiveOperationException ex) { throw new ExceptionInInitializerError(ex); } } public boolean equals(Object o) { return EQUALS.invokeExact(this, o); } } ------------- PR Comment: https://git.openjdk.org/jdk/pull/17603#issuecomment-1913227054