Перечисление Java: константное значение в качестве поля или «вычисление» его внутри переключателя – какой дизайн предпочJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Перечисление Java: константное значение в качестве поля или «вычисление» его внутри переключателя – какой дизайн предпоч

Сообщение Anonymous »

Изображение: у вас есть перечисление, где каждая константа связана с фиксированным целочисленным кодом. Я вижу две возможные реализации:
Вариант А – сохранить код как поле:

Код: Выделить всё

public enum FoodCategoryA {

CARBS(5),
PROTEINS(14),
FATS(-1);

private final int categoryCode;

FoodCategoryA(int categoryCode) {
this.categoryCode = categoryCode;
}

public int getCategoryCode() {
return categoryCode;
}
}
Вариант Б – вычислить код внутри случая переключателя:

Код: Выделить всё

public enum FoodCategoryB {

CARBS,
PROTEINS,
FATS;

public int getCategoryCode() {
return switch (this) {
case CARBS -> 5;
case PROTEINS -> 14;
case FATS -> -1;
};
}
}
Какой из них вы бы предпочли и почему? Или это не имеет особого значения и они для вас равноценны? Или вы бы реализовали что-то совершенно другое?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -switch-wh
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»