Wenn die Anwendung Code-Basis wird viel Enums verwenden, dann würde ich folgende Lösung bevorzugen, die ich in meiner Anwendung verwendet haben.
Basisklasse
public class Enum {
protected int _enumValue;
protected Enum(int enumValue) {
this._enumValue = enumValue;
}
public int Value() {
return this._enumValue;
}
}
Ihre Aufzählungen werden dann nach folgendem Muster erfolgen
Tatsächliches Enum
public class DATE_FORMAT extends Enum {
public static final int DDMMYYYY = 1;
public static final int MMDDYYYY = 2;
public static final int YYYYMMDD = 3;
public DATE_FORMAT(int enumValue) {
super(enumValue);
}
}
Und Ihr Code kann diese Aufzählung wie folgt verwenden
String getFormattedDate(DATE_FORMAT format) {
String sDateFormatted = "";
switch (format.Value()) {
case DATE_FORMAT.DDMMYYYY :
break;
case DATE_FORMAT.MMDDYYYY :
break;
case DATE_FORMAT.YYYYMMDD :
break;
default:
break;
}
return sDateFormatted;
}
Der Aufrufer kann die Funktion als
void callerAPI() {
DATE_FORMAT format = new DATE_FORMAT(DATE_FORMAT.DDMMYYYY);
String sFormattedDate = getFormattedDate(format);
}
Dies ist noch kein vollständiger Beweis gegen die Intitialisierung von abgeleiteten Enum-Objekten mit einem beliebigen Integer-Wert. Es kann jedoch eine gute syntaktische Leitlinie für die Arbeit in einer Nicht-Enum-Umgebung bieten.
3 Stimmen
Ich bin wirklich neugierig: Welche Gründe gibt es, Java 1.4 noch zu verwenden?
0 Stimmen
Ich würde vorschlagen, den Titel der Frage um diese Tatsache (mobil) zu ergänzen
2 Stimmen
Viele Leute benutzen immer noch 1.4, ich sehe das Problem nicht.