Towards cleaner nesting


Everything about nesting in Java is a mess. The terminology is a mess (top level classes, nested classes, inner classes, local classes, anonymous classes); the set of restrictions on what can nest in what is ad-hoc (can have local classes but not local interfaces; inner classes cannot have static members, including static nested classes), and the set of rules about what must be, can be, or cannot be static is also ad-hoc (nested classes can be static or not, nested interfaces are implicitly static, but local and anonymous classes may not be static, even though it might make sense.)…

More at https://mail.openjdk.java.net/pipermail/amber-spec-experts/2020-January/001904.html