enum icecream {
vanilla(100), strawberry(20);
int price;
icecream(int i) {
price = i;
}
}
Я немного озадачен тем, как объекты enum создаются во время компиляции
Я видел несколько примеров, когда они упоминали это так
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. vanilla (100) здесь для vanilla цена 100, но как она на самом деле создается? Я не получаю это вообще. Пожалуйста, помогите: (