Напишите статический метод, точно так же, как valueOf()
уже существует, назовите его, скажем inRange()
, верните Grade
.
public enum Grade {
A(100, 90), B(89, 80), C(79, 70);
int uBound;
int lBound;
Grade(int uBound, int lBound){
...
}
public static Grade inRange(int percent){
...
}
}
Лучше инициализировать статический map
, проценты в качестве ключей и оценку в качестве значений. В этом случае я предлагаю вам использовать коллекцию Apache Commons MapUtils
. Ниже приведен пример
private static final Map<Integer, Grade> GRADE_MAP = UnmodifiableMap.decorate(
MapUtils.putAll(new HashMap<Integer, Grade>(), new Object[][]{
{0, F}, {1, F}, .....,
.....
.....
{100, A}
}));
тогда ваш метод будет выглядеть ниже,
public static Grade inRange(int percent){
return GRADE_MAP.get(percent);
}