Литералы Enum являются статическими членами, и с каждым статическим членом можно получить к ним доступ, используя ссылку на класс:
TypeName.staticMember
TypeName.staticMethod()
Или в экземпляре:
new TypeName().staticMember
new TypeName().staticMethod()
Второйтакой подход не рекомендуется (и компилятор выдаст предупреждение)
Поскольку литералы enum являются просто статическими элементами, Repeat.Daily.Weekly.Yearly.Weekly
подобен второму фрагменту кода выше, получая доступ к статическим членам по ссылкам на экземпляры.
С классом это будет:
class Type {
static Type INSTANCE1, INSTANCE2, INSTANCE3;
}
И можно получить ссылку на INSTANCE3
, используя Type.INSTANCE1.INSTANCE2.INSTANCE3
.Это верно, но это плохая практика.