YazılımMimarı
Forum Ustası
Enum sınıfları genelde, static yada final keywordlerle belirlenen değişmeyecek olan değerlerin ortak bir paydada toplamak için kullanılır. Örnek ; haftanın günler, yılın ayları, yada daha spesifik olarak ; İşlemci tipleri (32Bit, 64 Bit) gibi gibi..
Bunların dışında enum sınıfı aslında finalize edilmiş bir interface(arayüz)'dir. Interface'ler içinde içi boş abstract metodlar tanımlanabilir ve bu arayüz ü implements eden sınıflarda bu metodlar zoraki implement edilmek zorundadır. enum sınıfları içinde aşağıdaki gibi, abstract bir metod tanımlayıp, bunu varolan enum 'lar içinde implement edilmiş halini görüyorsunuz.. İhtiyaca göre siz metodlar yazabilirsiniz. ben örnek te sadece gelebilecek değerlere göre filtre yaptırdım.
Kaynak GIST'im : https://gist.github.com/TurgayCan2/e351a139a2777f0d02e4
Bunların dışında enum sınıfı aslında finalize edilmiş bir interface(arayüz)'dir. Interface'ler içinde içi boş abstract metodlar tanımlanabilir ve bu arayüz ü implements eden sınıflarda bu metodlar zoraki implement edilmek zorundadır. enum sınıfları içinde aşağıdaki gibi, abstract bir metod tanımlayıp, bunu varolan enum 'lar içinde implement edilmiş halini görüyorsunuz.. İhtiyaca göre siz metodlar yazabilirsiniz. ben örnek te sadece gelebilecek değerlere göre filtre yaptırdım.
Kod:
public enum EnumClass {
ENUMVAL1{
@ Override
public boolean anyFilter(){
return false;
}
@ Override
public List<EnumClass> listOfAnyFilter(){
return Arrays.asList(ENUMVAL1, ENUMVAL2);
}
},
ENAMULVAL2{
@ Override
public boolean anyFilter(){
return true;
}
@ Override
public List<EnumClass> listOfAnyFilter(){
return Arrays.asList(ENUMVAL2);
}
};
public abstract boolean anyFilter();
public abstract List<EnumClass> listOfAnyFilter();
}