我正在使用状态机,并且针对大量可能的状态进行测试时,代码变得非常冗长。
enum Mood {
HAPPY, SAD, CALM, SLEEPY, OPTIMISTIC, PENSIVE, ENERGETIC;
}
有什么办法可以做到这一点:
if (currentMood == (HAPPY | OPTIMISTIC | ENERGETIC) {}
代替这个:
if (currentMood == HAPPY || currentMood == OPTIMISTIC || currentMood == ENERGETIC) {}
还是在这种情况下坚持使用整数和标志会更好?
最佳答案
也许使用类似EnumSet的东西?
if (EnumSet<Mood>.of(HAPPY, OPTIMISTIC, ENERGETIC).contains(currentMood))
{
//Do stuff...
}