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