Dün Enum nesnelerle ilgili araştırma yaparken karşıma çıkan bir örneği paylaşmak ve yeni java öğrenmeye çalışan arkadaşlar için de biraz araştıracağım.
Haftanın günlerini enum değerler olarak tanımladık.
Enumset'in
isWorkday() metodumuz gelen değerin hafta içi olup olmadığını kontrol ediyor.
Bu esnada öğrendiğim bir sey daha oldu. String.format metodu. Bununla ilgili de internette araştıma yaptığımda String nesnesinin format metodunun çok güzel işler yaptığını farkettim.
Bunu bir sonraki yazımda paylaşmaya çalışacağım.
Yukaridaki kodu çalıştırdığınızda çıktısı şu şekilde olacaktır :
//
İş Takvimi:
1. PAZARTESI Günü Sen çalışmak zorundasın.
2. SALI Günü Sen çalışmak zorundasın.
3. CARSAMBA Günü Sen çalışmak zorundasın.
4. PERSEMBE Günü Sen çalışmak zorundasın.
5. CUMA Günü Sen çalışmak zorundasın.
6. CUMARTESI Günü Sen gezip tozabilirsin.
7. PAZAR Günü Sen gezip tozabilirsin.
Bütün hafta boyunca çalışmak zorunda mıyım?
Kesinlikle hayır.
//
kaynak : Fun with EnumSet
Haftanın günlerini enum değerler olarak tanımladık.
Enumset'in
- range() metodu ile Pazartesi'den Cuma'ya kadar olan enum değerlerini iş günleri değişkenine atadık.
- alloff() metodu ise verilen tüm enum değerli kapsıyor.
- size() listenin kaç elemanlı olduğunu
- removeAll() ise verilen listenin diğer enum liste içerisinden çıkarılması sağlar
isWorkday() metodumuz gelen değerin hafta içi olup olmadığını kontrol ediyor.
Bu esnada öğrendiğim bir sey daha oldu. String.format metodu. Bununla ilgili de internette araştıma yaptığımda String nesnesinin format metodunun çok güzel işler yaptığını farkettim.
Bunu bir sonraki yazımda paylaşmaya çalışacağım.
public final class EnumSetOrnegi { private enum HaftaninGunleri { PAZARTESI, SALI, CARSAMBA, PERSEMBE, CUMA, CUMARTESI, PAZAR; EnumSetIS_GUNLERI = EnumSet.range(PAZARTESI, CUMA); public final boolean isWorkday() { return IS_GUNLERI.contains(this); } public static final EnumSetBUTUN_HAFTA = EnumSet.allOf(HaftaninGunleri.class); } public static final void main(final String... argumgents) { System.out.println("İş Takvimi:"); for (final HaftaninGunleri weekday : HaftaninGunleri.BUTUN_HAFTA) System.out.println(String.format("%d. %s günü sen " + (weekday.isWorkday() ? "çalışmak zorundasın" : "gezip tozabilirsin") + ".", weekday.ordinal() + 1, weekday)); System.out.println("Bütün hafta boyunca çalışmak zorunda mıyım?"); System.out.println(HaftaninGunleri.IS_GUNLERI.containsAll(HaftaninGunleri.BUTUN_HAFTA) ? "Evet, maalesef." : "Kesinlikle hayır."); final EnumSetweekend = HaftaninGunleri.BUTUN_HAFTA.clone(); weekend.removeAll(HaftaninGunleri.IS_GUNLERI); } }
Yukaridaki kodu çalıştırdığınızda çıktısı şu şekilde olacaktır :
//
İş Takvimi:
1. PAZARTESI Günü Sen çalışmak zorundasın.
2. SALI Günü Sen çalışmak zorundasın.
3. CARSAMBA Günü Sen çalışmak zorundasın.
4. PERSEMBE Günü Sen çalışmak zorundasın.
5. CUMA Günü Sen çalışmak zorundasın.
6. CUMARTESI Günü Sen gezip tozabilirsin.
7. PAZAR Günü Sen gezip tozabilirsin.
Bütün hafta boyunca çalışmak zorunda mıyım?
Kesinlikle hayır.
//
kaynak : Fun with EnumSet