Ответ 1
Да, это так. Спецификация языка даже говорит об этом. Из раздела JLS 8.9 (перечисления):
Вложенные типы перечислений неявно статичны. Разрешено явно объявлять вложенный тип enum статическим.
class Coffee{
enum CoffeeSize{BIG,HUGE,OVERWHELMING}
CoffeeSize size;
}
class CoffeeTest{
public static void main(String[] args)
{
Coffee drink=new Coffee();
drink.size=Coffee.CoffeeSize.BIG;
}
}
Coffee.CoffeeSize.BIG
: я могу получить CoffeeSize
только с именем класса Coffee
. Правильно ли, когда я думаю, что тип перечисления неявно статичен?
Да, это так. Спецификация языка даже говорит об этом. Из раздела JLS 8.9 (перечисления):
Вложенные типы перечислений неявно статичны. Разрешено явно объявлять вложенный тип enum статическим.