Типы перечисления, объявленные в классе, неявно статичны?

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. Правильно ли, когда я думаю, что тип перечисления неявно статичен?

Ответы

Ответ 1

Да, это так. Спецификация языка даже говорит об этом. Из раздела JLS 8.9 (перечисления):

Вложенные типы перечислений неявно статичны. Разрешено явно объявлять вложенный тип enum статическим.