Varargs records

Tagir Valeev amaembo at
Fri Aug 16 00:57:41 UTC 2019

Allowing this would encourage people to use arrays in records.
Unfortunately, according to current spec they will have broken
equals/hashCode. Especially in vararg mode: you will always have a new
array, so no record will be equal to another one unless explicit array is
used instead of vararg. Is this what we want?

With best regards,
Tagir Valeev.

пт, 16 авг. 2019 г., 1:35 Brian Goetz <brian.goetz at>:

> As I was writing some tests for records, it occurs to me that we never
> explicitly discussed whether we should support _varargs_ records, such as:
>      record StringBunch(String... strings) { }
> The translation would be straightforward:
>   - The type of the strings field is String[]
>   - The return type of the strings accessor is String[]
>   - The canonical constructor is of descriptor (String...) rather than
> (String[]), allowing varargs invocation of the constructor.
>   - There would be the usual restriction that there can be only one
> varargs argument, and it must be last.
> So this seems feasible.  Is this something we want?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the amber-spec-experts mailing list