Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Enum как хранилище данных

#java #enum


Имеется абстрактный класс Measurments. Все типы Measurments наследуют данный класс
- Temperature, Rainfall и т.д. У каждого типа есть значение и единица измерения. Мне
подсказали, что для всех типов единицы измерения нужно создать один enum. Подскажите
пожалуйста, как должен выглядеть такой enum и как его связать с каждым классом, где
единицы измерений (%, м/сек, мм/кв.м, ю/с/з/в и т.д.)?
    


Ответы

Ответ 1



Хранение единиц измерений можно реализовать так: public enum Unit { TEMP("C"), // Температура WIND("м/сек"), // Скорость ветра PREC("мм"); // Осадки private String unit; Unit(String unit) { this.unit = unit; } public String value() { return unit; } } Для направления ветра: public enum WindDirection { NORTH("север"), EAST("восток"), ...; private String direction; Units(String direction) { this.direction = direction; } public String value() { return direction; } } Использование: public class Wind extends Measurments { private static final String UNIT = Unit.WIND.value(); private String value; private WindDirection direction; Wind(String value, WindDirection direction) { this.value = value; this.direction = direction; } public String toString() { return "Ветер: " + "скорость " + this.value + " " + UNIT + ", " + "направление " + this.direction.value(); } } Таким образом Unit будет хранилищем для всех единиц измерений.

Комментариев нет:

Отправить комментарий