Where does this array come from ?

forax at univ-mlv.fr forax at univ-mlv.fr
Wed Apr 8 15:58:31 UTC 2020


----- Mail original -----
> De: "Brian Goetz" <brian.goetz at oracle.com>
> À: "Remi Forax" <forax at univ-mlv.fr>
> Cc: "Mateusz Romanowski" <romanowski.mateusz at gmail.com>, "amber-dev" <amber-dev at openjdk.java.net>
> Envoyé: Mercredi 8 Avril 2020 16:47:41
> Objet: Re: Where does this array come from ?

> At one point we considered having a way to invoke the default implementation
> (e.g., default.toString()), but after more consideration, felt this didn’t
> carry its weight.
> 
> The obvious answer is: write it!

There is still a code i have submitted to improve the meta-factory used by the record implementation which is in limbo.

Also, i think the way to do it properly is to patch the compiler to see the method of java.lang.Record as non abstract (the symbols in the scope), so a call like super.equals() will compile and then let the compiler to replace that call with an indy, is it what you have in mind ?

Rémi

> 
>> On Apr 8, 2020, at 10:45 AM, forax at univ-mlv.fr wrote:
>> 
>> This remember me something,
>> let suppose I have this record,
>>  record Point(int x, int y) { }
>> 
>> and I want toString() to return the same string as usual but with a bang " !" at
>> the end,
>> how am i suppose to do that ? (obviously the code has to work even if i add new
>> record components).
>> 
>> Rémi
>> 
>> ----- Mail original -----
>>> De: "Brian Goetz" <brian.goetz at oracle.com>
>>> À: "Mateusz Romanowski" <romanowski.mateusz at gmail.com>
>>> Cc: "Remi Forax" <forax at univ-mlv.fr>, "amber-dev" <amber-dev at openjdk.java.net>
>>> Envoyé: Mercredi 8 Avril 2020 16:34:37
>>> Objet: Re: Where does this array come from ?
>> 
>>>> Yes, but the record class author can still override Object methods, right?
>>> 
>>> Sort of!  jl.Record, the implicit super type, overrides equals, hashCode, and
>>> toString with refined (strengthened) semantics.  So you can’t override
>>> Object::equals, but you can override Record::equals (which of course has to
> >> conform to the semantics of Object::equals, but also does more.)


More information about the amber-dev mailing list