enum icecream {
vanilla(100), strawberry(20);
int price;
icecream(int i) {
price = i;
}
}
关于如何在编译期间创建枚举对象,我有点困惑
我看到他们提到的一些例子
public enum Flavor
{
COFFEE, VANILLA, CHOCOLATE, STRAWBERRY, RUM_RAISIN, PEACH
}
这被翻译成(在编译期间)
public final class Flavor
extends java.lang.Enum
{
public static final Flavor COFFEE = new Flavor("COFFEE", 0);
public static final Flavor VANILLA = new Flavor("VANILLA", 1);
// ...
}
链接:http://www.kdgregory.com/index.php?page=java.enum
但是当我将值与名称一起传递给我时,对象是如何创建的,它们看起来就像是方法调用. E.x.香草(100)这里的香草,价格是100,但它是如何创建的?我根本没有得到它.请帮忙 :(
最佳答案 香草(100),草莓(20)只是一个java5表示法.它在编译期间被翻译成适当的对象创建代码:
public static final icecream vanilla = new icecream(100);
public static final icecream strawberry = new icecream(20);
BTW,java类型应该是CamelCased,所以,icecream应该命名为IceCream.