[statics] allowing static initializers in interfaces?

John Rose john.r.rose at oracle.com
Wed Nov 18 08:07:18 UTC 2020


+1 from me too, and generally to heal the rift.
The inability to put private classes (and other “stuff”)
in an interface makes it hard to support canonical
algorithms in default methods, if they need auxiliary
types.

> On Nov 17, 2020, at 6:03 AM, Maurizio Cimadamore <maurizio.cimadamore at oracle.com> wrote:
> 
> Hi,
> now that the work on allowing static members in nested declarations [1] is wrapping up, I'm wondering if we could add treatment for one more case: static initializers in interfaces. This seems a case where the static compiler is already inserting static blocks (to initialize any static fields an interface might declare), but where the JLS is currently forbidding interfaces from having an explicit static initializer block in the source code. This make e.g. initialization of fields which might throw exceptions (e.g. method handles) not possible inside interfaces. While I realize this is a corner case, I thought it would still be worth asking the question :-)
> 
> Cheers
> Maurizio
> 
> [1] - https://git.openjdk.java.net/jdk/pull/571
> 



More information about the amber-spec-experts mailing list