Estoy usando una máquina de estado, y el código se vuelve realmente detallado cuando se prueba en una gran cantidad de estados posibles.¿Hay alguna forma de hacer bitwise-O enumeraciones en Java?
enum Mood {
HAPPY, SAD, CALM, SLEEPY, OPTIMISTIC, PENSIVE, ENERGETIC;
}
¿Hay alguna manera de hacer esto:
if (currentMood == (HAPPY | OPTIMISTIC | ENERGETIC) {}
lugar de esto:
if (currentMood == HAPPY || currentMood == OPTIMISTIC || currentMood == ENERGETIC) {}
O sería mejor quedarse con números enteros y banderas en este caso?
Usted quiere decir 'if ((currentMood y (FELIZ | OPTIMISTIC | ENERGETIC))! = 0) {} '. O tal vez 'if (((1 << currentMood) & ((1 << HAPPY) | (1 << OPTIMISTIC) | (1 << ENERGETIC)))!! = 0) {}'. Supongo que estoy feliz de que lo hagas bien. –
Deduzco de "enteros y banderas" que el actualMood puede ser más de un estado de ánimo. – blizpasta
@Tom - Sí, técnicamente tiene razón. Estaba dividido entre escribir en operaciones bit a bit de estilo C o una sintaxis de tipo de teoría de conjuntos. –