Where does this array come from ?
Brian Goetz
brian.goetz at oracle.com
Wed Apr 8 13:32:42 UTC 2020
Turning this around, though: what’s the use case you have in mind where interfaces aren’t good enough? For _new_ code, you can always turn it into an interface. So I guess it would be for _exisitng_ abstract classes, like Number? Are there other examples you have in mind?
> On Apr 7, 2020, at 2:33 PM, Mateusz Romanowski <romanowski.mateusz at gmail.com> wrote:
>
> Hi,
> Could we allow record classes to extend abstract stateless classes (same as
> in valhalla) that also extend java.lang.Record.
>
> I think that such functionality is needed (at least in JVM view) for inline
> records.
>
> Should it also be made available to non-inline records?
>
> Thanks,
> Mateusz
>
>
>
> On Tuesday, April 7, 2020, Remi Forax <forax at univ-mlv.fr> wrote:
>> Create an an interface with a default method toJSON().
>>
>> interface DeriveJSON {
>> public default String toJSON() {
>> // use an object mapper or whatever you want here
>> }
>> }
>>
>> so when you want a Point with a method toJSON(), you can write
>> record Point(x, y) implements DeriveJSON { }
>>
>> With a little work, you can make toJSON to use a polymorphic inlining
> cache (good for benchmark) and with the upcoming hidden classes have a
> constant cost if it becomes megamorphic without generating bytecode.
>>
>> Rémi
>>
>> ----- Mail original -----
>>> De: "Stephen Colebourne" <scolebourne at joda.org>
>>> À: "amber-dev" <amber-dev at openjdk.java.net>
>>> Envoyé: Lundi 6 Avril 2020 15:45:48
>>> Objet: Re: Where does this array come from ?
>>
>>> FWIW, a colleague has previously argued that the toString of a bean
>>> should be JSON. At a company he worked at, all their beans were JSON
>>> and it apparently allowed them to build tooling on top of the
>>> toString. I'm not sure I'm convinced about JSON, but I do think a
>>> record is closer to a map than a list. And yes, Joda-Beans uses {} not
>>> [].
>>> Stephen
>>>
>>>
>>> On Mon, 6 Apr 2020 at 14:01, Brian Goetz <brian.goetz at oracle.com> wrote:
>>>>
>>>> Perhaps we should rotate the punctuation every version just to
> discourage
>>>> parsing :)
>>>>
>>>>> On Apr 6, 2020, at 7:34 AM, Remi Forax <forax at univ-mlv.fr> wrote:
>>>>>
>>>>> I've was debugging a code yesterday that was printing
>>>>> Empty[]
>>>>>
>>>>> After some head scratching, trying to find an array of Empty, i found
> that it
>>>>> was just an empty record
>>>>> record Empty() { }
>>>>>
>>>>> This is another clue that using square brackets for toString() is a
> bad idea !
>>>>>
>>>>> regards,
>>>>> Rémi
>>
More information about the amber-dev
mailing list