有没有办法在Java中按位OR枚举?
我正在使用状态机,在针对大量可能的状态进行测试时,代码变得非常冗长。
enum Mood {
HAPPY, SAD, CALM, SLEEPY, OPTIMISTIC, PENSIVE, ENERGETIC;
}
有没有办法做到这一点:
if (currentMood == (HAPPY | OPTIMISTIC | ENERGETIC) {}
取而代之的是:
if (currentMood == HAPPY || currentMood == OPTIMISTIC || currentMood == ENERGETIC) {}
或者在这种情况下,坚持使用整数和标志会更好吗?