【发布时间】:2012-07-24 20:37:58
【问题描述】:
我有一个枚举类型(例如,为了参数的缘故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
这可以通过枚举实现吗,(枚举甚至是“正确”的方法吗?
【问题讨论】: