Если вместо этого вы можете начать свое конкретное перечисление с ZERO
, вы можете сделать
// ...
private static final Numbers[] list = values();
public static Numbers get(int which) { return list[i]; }
// ...
и игнорируйте присвоение индексов вашему перечислению.
РЕДАКТИРОВАТЬ: опция безопасного рефакторинга:
//..
private static final Map<Integer, Numbers> getter; static {
Numbers[] ns = values();
getter = new HashMap<Integer, Numbers>(ns.length, 1f);
for (Numbers n : ns) getter.put(n.num, n);
}
public static Numbers get(int which) { return getter.get(which); }
//..
это также способствует изменению индекса на любой тип, который вам нравится, и возвращает ноль вместо того, чтобы выдавать исключение, если вы запрашиваете мусор (который может быть предпочтительным).