Прекратите полагаться на порядок перечисления записей.Это приведет к большему количеству ошибок, чем вы можете себе позволить.
Поскольку кодирование зависит от порядка перечисления, вы неявно вызываете функцию ordinal()
класса перечисления (которая возвращает int).Это имеет следующие недостатки:
- Это кошмар обслуживания.Если кто-то (или затмение) переупорядочивает ваши перечисления, вся ваша программа должна быть проверена на предмет воздействия.
- Вы не можете добавить несколько перечислений с одним и тем же значением int.
- Вы должны вставить фиктивные перечислениякоторые не соответствуют никаким законным функциям для получения желаемого
ordinal()
возвращаемого значения. - Вы не можете вставлять перечисления в произвольных точках в списке, не нарушая порядковое отображение, также вы не можете удалять перечисления.
Вместо этого, расширьте ваше перечисление, чтобы оно содержало правильное значение, например:
public enum Departments {
SALES(101),
ACCOUNTING(200),
MANAGEMENT(300);
private final int deptNumber;
Departments(int number) {
deptNumber = number;
}
public int departmentNumber() {
return deptNumber;
}
}