Ich habe es einfach versucht und mir folgende Lösung ausgedacht:
public enum Countries {
TEXAS,
FLORIDA,
OKLAHOMA,
KENTUCKY;
private static Countries[] list = Countries.values();
public static Countries getCountry(int i) {
return list[i];
}
public static int listGetLastIndex() {
return list.length - 1;
}
}
Die Klasse hat ihre eigenen Werte, die in einem Array gespeichert sind, und ich verwende das Array, um die Aufzählung bei der Indexposition zu erhalten. Wie oben erwähnt, beginnen Arrays ab 0 zu zählen. Wenn Ihr Index bei '1' beginnen soll, ändern Sie einfach diese beiden Methoden in:
public static String getCountry(int i) {
return list[(i - 1)];
}
public static int listGetLastIndex() {
return list.length;
}
In meinem Main bekomme ich das benötigte Länderobjekt mit
public static void main(String[] args) {
int i = Countries.listGetLastIndex();
Countries currCountry = Countries.getCountry(i);
}
Dies setzt currCountry auf das letzte Land, in diesem Fall Countries.KENTUCKY.
Denken Sie daran, dass dieser Code von ArrayOutOfBoundsExceptions stark betroffen ist, wenn Sie fest codierte Angaben verwenden, um Ihre Objekte abzurufen.