为什么在 java 中的静态块中声明接口时编译器会显示错误?

Why compiler shows error when I declare interface in static block in java?

例如

public class Test
{
  static
  {
    interface ITest
    {}
  }
}

此处 ITest 接口在静态块中声明... 目的是了解为什么会发生这种情况 接口本质上是静态的,那么为什么它不能在静态块中声明

============================================= ============================ 相反,我检查了下面的情况,没有显示错误。

public class Test
{

  interface ITest
  {}
}

如果有人真的能指出差异,导致在一种情况下有错误而在第二种情况下没有,那么它会有很大帮助。

您不能在可执行代码块中包含结构定义(class、接口、枚举、注释 def、...)。 唯一的例外是内部 class.