相关疑难解决方法(0)

为什么静态上下文中的匿名类有效

我对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)

DEMO

为什么代码编译?在JLS,CHAPT 15说:

匿名类始终是内部类(第8.1.3节); 它永远不会是静止的

JLS,8章

内部类是未显式或隐式声明为静态的嵌套类.

所以匿名类是一个内部类.但我们在静态环境中使用它们.为什么在这里是正确的?

java anonymous-class

13
推荐指数
1
解决办法
1082
查看次数

标签 统计

anonymous-class ×1

java ×1