Рассмотрим enum Animals { DOG, FISH, GOAT }; в Java.
Теперь переменная типа Animals может указывать на объекты-члены этого типа:
Animals a1 = Animals.DOG;, что отлично.
Но как имеют смысл следующие ссылки на цепочку?
Animals a2 = a1.DOG.FISH.GOAT; (да, выглядит сумасшедшим, видел это в сложном вопросе Java)
что на самом деле указывает a1? и как мы ссылаемся на другие члены enum от него?
Пример:
public class EnumTest {
enum Animals { DOG, FISH, GOAT };
public void test(){
Animals a1 = Animals.DOG;
Animals a2 = a1.DOG.FISH.GOAT; //--Strange but valid--
}
}