@ Lyle'ın cevabı oldukça tehlikeli ve özellikle enum'u statik bir iç sınıf yaparsanız işe yaramadığını gördüm. Bunun yerine numaralandırmalardan önce BootstrapSingleton haritalarını yükleyecek böyle bir şey kullandım.
Düzen bu artık çağdaş JVM'lerle (JVM 1.6 veya üzeri) ile ilgili bir sorun olmamalı ama JRebel ile ilgili sorunlar hala vardır sizce ama tekrar test buna bir şansım olmadı .
Önce beni yükle:
public final class BootstrapSingleton {
// Reverse-lookup map for getting a day from an abbreviation
public static final Map<String, Day> lookup = new HashMap<String, Day>();
}
Şimdi enum yapıcısına yükleyin:
public enum Day {
MONDAY("M"), TUESDAY("T"), WEDNESDAY("W"),
THURSDAY("R"), FRIDAY("F"), SATURDAY("Sa"), SUNDAY("Su"), ;
private final String abbreviation;
private Day(String abbreviation) {
this.abbreviation = abbreviation;
BootstrapSingleton.lookup.put(abbreviation, this);
}
public String getAbbreviation() {
return abbreviation;
}
public static Day get(String abbreviation) {
return lookup.get(abbreviation);
}
}
Eğer bir iç enumunuz varsa, sadece enum tanımının üstündeki haritayı tanımlayabilirsiniz ve (teoride) daha önce yüklenmelidir.
stringMap
başlatma aşamasına geçmeden önce oluşturulur ). Genel çözüm, iç içe bir sınıf kullanmaktır.