按JLS:内部类允许静态字段和非常量静态表达式 - 为什么?
内部类是一个嵌套类,它是不明确或隐含 声明为static。内部类可能不会声明静态初始化程序 或成员接口。
但我的下面的代码编译成功。
class A {
interface B {
class C { // Inner class having static variables.
static int d; // Static variable
static {
}
}
}
}
有一个人帮助我理解这种行为
我很确定'C'隐式地是'static',而不是一个内部类。 –
您的嵌套类**被隐式声明为静态。因为接口不能有内部类。接口B是相同的,这是隐式静态的。 –