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

Your API is risky as well: it won't get a compile error if you add a new field 
but forgot to add that field to equality checks too. And since initialization 
happens in `<clinit>`, your said error is quite easy to detect if this class is 
ever loaded.

If you want this example to be "not brittle" you can resort to annotation 
processors (essentially compiler plugins) that automatically generate 
invokedynamic (which is better than this explicit field approach, as this field 
is initialized eagerly while indy is lazy)

-------------

PR Comment: https://git.openjdk.org/jdk/pull/17603#issuecomment-1913261457

Reply via email to