下面是定义枚举类型的代码。
enum Company{
EBAY(30), PAYPAL(10), GOOGLE(15), YAHOO(20), ATT(25);
private int value;
private Company(int value){
super(this.name());
this.value = value;
}
public int getValue(){
return value;
}
}
内部编译为,
final class Company extends Enum<Company>{
public final static Company EBAY = new Company(30);
public final static Company PAYPAL = new Company(10);
public final static Company GOOGLE = new Company(15);
public final static Company YAHOO = new Company(20);
public final static Company ATT = new Company(25);
private int value;
private Company(int value){
super(this.name(),Enum.valueOf(Company.class, this.name()));
this.value = value;
}
public int getValue(){
return value;
}
}
我的理解正确吗?
最佳答案
功能上,是的。字面意思是不(一方面,你不能显式地将 Enum
子类化)。 enum(s)
有一个 toString
。并且您的 enum
不是有效代码(您不能调用 super()
)并且 getValue
需要返回类型。
enum Company{
EBAY(30), PAYPAL(10), GOOGLE(15), YAHOO(20), ATT(25);
private int value;
private Company(int value){
this.value = value;
}
public int getValue(){
return value;
}
}
关于java - 在java中,这样的枚举类型编译成什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31039980/