我对Java中的匿名类有什么误解.考虑以下简单示例:
public static void main (String[] args) throws java.lang.Exception
{
B b = new B(){ };
System.out.println(b.b);
}
interface B{ int b = 1; }
Run Code Online (Sandbox Code Playgroud)
为什么代码编译?在JLS,CHAPT 15说:
匿名类始终是内部类(第8.1.3节); 它永远不会是静止的
内部类是未显式或隐式声明为静态的嵌套类.
所以匿名类是一个内部类.但我们在静态环境中使用它们.为什么在这里是正确的?