我突然输入了一个 Pokemon 类型的枚举
public enum Type {
NORMAL () { // This is the question. Why does Java allow this?
int x = 10; // Only accepts variables?
};
Type () {}
}
这段代码编译正确。
常量的代码块有什么用?
最佳答案
枚举中的代码块允许您覆盖枚举类型中定义的方法。例如
enum Foo {
PEAR,
BANANA() {
@Override
public void doFoo() {
System.out.println("Banana foo");
}
},
APPLE,
GRAPE;
public void doFoo() {
System.out.println("Default foo");
}
}
这里 Foo.BANANA.doFoo()
会生成 "Banana foo"
,同时在任何其他 上调用
会生成 doFoo()
Foo"Default foo"
。
关于java - 为什么 Java 允许枚举常量的代码块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27395666/