12 EYLÜL 2009, CUMARTESİ
Çeteleler yeni öğeler eklemek için alt edebilir mi?
Aşağıdaki gibi: varolan bir numaralandırma ve daha fazla öğe eklemek istiyorum
enum A {a,b,c}
enum B extends A {d}
/*B is {a,b,c,d}*/
Bu mümkün Java mı?
CEVAP
12 EYLÜL 2009, CUMARTESİ
Çeteleler Olası değerlerin tam bir numaralandırma temsil eder. (İşe yaramaz) cevap hayır.
Gerçek bir sorun örneği olarak hafta içi, hafta sonu gün, birlik, haftanın günleri. -Gün-hafta içinde her gün tanımlayabiliriz ama sonra özellikleri de hafta içi ve hafta sonu günler için özel temsil etmek mümkün olmaz.
Bunu, hafta içi arasında bir eşleme ile üç numaralama türleri yapabiliriz ne hafta sonu gün ve gün.
public enum Weekday {
MON, TUE, WED, THU, FRI;
public DayOfWeek toDayOfWeek() { ... }
}
public enum WeekendDay {
SAT, SUN;
public DayOfWeek toDayOfWeek() { ... }
}
public enum DayOfWeek {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
Alternatif olarak, bir-gün-hafta için açık uçlu bir arayüz yapabiliriz:
interface Day {
...
}
public enum Weekday implements Day {
MON, TUE, WED, THU, FRI;
}
public enum WeekendDay implements Day {
SAT, SUN;
}
Ya iki yaklaşım kombine edebiliriz:
interface Day {
...
}
public enum Weekday implements Day {
MON, TUE, WED, THU, FRI;
public DayOfWeek toDayOfWeek() { ... }
}
public enum WeekendDay implements Day {
SAT, SUN;
public DayOfWeek toDayOfWeek() { ... }
}
public enum DayOfWeek {
MON, TUE, WED, THU, FRI, SAT, SUN;
public Day toDay() { ... }
}
Bunu Paylaş:
Nasıl yeni öğeler eklemek için boş bir...
Argparse Python: Nasıl yardım metindek...
Nasıl bir diziye yeni elemanlar ekleme...
Nasıl bir desen önünde bir yeni satır ...
Nasıl programlı olarak datagridview iç...