Where does this array come from ?
Remi Forax
forax at univ-mlv.fr
Tue Apr 7 17:35:33 UTC 2020
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