Record component type can be an inner class of a record
Brian Goetz
brian.goetz at oracle.com
Tue Mar 24 21:06:07 UTC 2020
It is kind of weird, though, when Bar is not static, since you can't
create a Bar without having a Foo in hand, and you can't create a Foo
without a Bar. You could cheat and do this:
Foo f = new Foo(null);
Bar b = f.new Bar(...);
Foo ff = new Foo(b);
but I doubt anyone will find this technique useful for anything other
than a puzzler...
On 3/24/2020 4:57 PM, Remi Forax wrote:
> Hi all,
> a record component can use as type a type declared inside the record itself,
> in term of scoping it's like if the record component is part of the internal scope of the record.
>
> record Foo(Bar bar) {
> class Bar {
>
> }
> }
>
> I think it's the right behaviour but i was not able to find any reference to that in the spec.
>
> regards,
> Rémi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/amber-spec-experts/attachments/20200324/e002c254/attachment.htm>
More information about the amber-spec-experts
mailing list