【发布时间】:2015-12-08 15:14:27
【问题描述】:
我有一个 Java 枚举如下:
public enum Cars
{
Sport,
SUV,
Coupe
}
我需要获取枚举的下一个值。所以,假设我有一个名为 myCurrentCar 的变量:
private Cars myCurrentCar = Cars.Sport;
我需要创建一个函数,在调用时将 myCurrentCar 的值设置为枚举中的下一个值。如果枚举不再有值,我应该将变量设置为枚举的第一个值。 我以这种方式开始我的实施:
public Cars GetNextCar(Cars e)
{
switch(e)
{
case Sport:
return SUV;
case SUV:
return Coupe;
case Coupe:
return Sport;
default:
throw new IndexOutOfRangeException();
}
}
这是一个工作,但它是一个 高维护 函数,因为每次我修改枚举列表时,我都必须重构该函数。 有没有办法将枚举拆分为字符串数组,获取下一个值并将字符串值转换为原始枚举?所以如果我在数组的末尾,我只需抓住第一个索引
【问题讨论】:
-
我知道这个答案,但我想要一个无限的解决方案,能够在到达数组末尾时返回第一项,所以它不是重复的
-
这个标记的问题也想循环回到第一个索引,所以从技术上讲它是重复的。我认为我的答案更容易阅读:p
标签: java