Kitaplığımda bir "kullanıcı düzeyi" kavramı var. Birkaç varsayılan seviye sağladım, ancak çeşitli nedenlerle kullanıcıya kendi seviyelerini kullanma seçeneği vermek istiyorum.Ek açıklamalarda "Uzatılabilir enumatları" desteklemenin en iyi yolu?
Şu anda bu
public interface AdminLevel {
public void name();
}
public enum StandardAdminLevels implements AdminLevel {
ADMIN,
ANONYMOUS
}
sorun kullanıcı genellikle bir ek açıklamayla onların gerekli kullanıcı seviyesini geçen gittiğini olmasıdır olarak uygulanmaktadır. Şeyler denedim ve başarısız olmuş: türü olarak AdminLevel Kullanılması
- - türü olarak Dize kullanılması ancak
StandardAdminLevels.ADMIN.name()
ile değeri ayarlayarak "ek açıklama üye için geçersiz tip" - başarısız - olmalı "özellik değeri Başarısız sabit - ek açıklama üye için geçersiz tip '"
- StandardAdminLevels seviyeleri (aslında bir enum) her biri için kamu statik nihai alan en bir şey uygulamayan bir nihai sınıf yapma ile başarısız'
var mı uygulanıyor başka türlü yapabilirim ' ek açıklamalarda uzatılabilir enumlar bulundurmayı düşünün mü? Netliklerinden ve geçersiz değerlere karşı temel korumalarından dolayı enumlarla uğraşmaya çalışıyorum ama düşünebildiğim tek diğer yöntem de String sabitleri. Sahip olduğum problem, her bir nokta kullanıcı seviyesinde, muhtemelen müşteri kodu
Herhangi bir fikirde doğrulama yapılmasını gerektirmesidir.
Genişletilebilir bir enum, terimler açısından bir çelişkidir. Enumların tüm amacı tüm kümeyi tanımlamak ve sadece bunlara izin vermektir. – Aurand
@Aurand Sihirli teller nasıl büyülüyor? Enumlar hala değerlerin doğrulanması için faydalıdır – TheLQ
Tüm olası değerlere sahip bir numaraya sahip olmanın nesi yanlış? –