получить ()методы в типе перечисления Java

У меня есть тип перечисления (, скажем, для аргументов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

Возможно ли это с перечислением, (и является ли перечисление даже «правильным» способом сделать это?

15
задан Bill the Lizard 24 July 2012 в 12:37
поделиться