У меня есть тип перечисления (скажем, для аргументов sake CarModel
), используемый во всем приложении (многочисленные классы).
public enum CarModel {
DIABLO,
P911,
DB7;
}
У меня есть различные методы, которые используют этот тип перечисления CarModel
разными способами, и каждый из них имеет оператор switch для установки некоторой переменной String
в зависимости от типа перечисления, прежде чем продолжать делать другие вещи. (например, установить производителя какой-либо модели или указать страну происхождения и т.д. Эти результаты являются статическими во время выполнения)
Проблема в том, что если я хочу добавить новую модель в перечисление, мне нужно будет перейти к каждому методу и расширить/изменить оператор switch, чтобы справиться с его существованием. Это может легко привести к ошибкам человека и/или дублированию кода (если различные методы используют одни и те же инструкции switch).
Вместо использования операторов switch all-over я хотел бы иметь статические методы, которые можно было бы редактировать в одном месте и позволяло бы поведение, подобное следующему:
String country = CarModel.DIABLO.getCountry() // returns Italy
String manufacturer = CarModel.P911.getManufacturer() // returns Porsche
Возможно ли это с перечислением (и является перечислением даже для "правильного" способа сделать это?