Establecer múltiples prioridades a un Enum | JAVA
El flujo de mis estados es el siguiente. Donde A, B, C, D, X son estados que se utilizan como enums.
A -> B -> C -> D -> E
A -> X
B -> X
C -> X
D -> X
Las flechas significan que el estado es alcanzable. Es decir, A -> X significa que A puede alcanzar X pero no a la inversa.
La forma en que estoy implementando es:
public enum States{
A(0), B(1), C(2), D(3);
private int priority;
…
}
Hay un estado flotante X, al que se puede llegar desde A, B, C y D.
Quiero establecer la prioridad de X de la manera anterior. ¿Hay alguna forma de hacerlo? Es decir, ¿establecer múltiples prioridades para un solo enum?
davy.ai
Desafortunadamente, no es posible establecer múltiples prioridades para un solo enum en Java. Las constantes enum en Java son únicas y no pueden tener valores o prioridades duplicadas.
Una solución podría ser crear un enum separado para el estado flotante X y asignarle una prioridad por separado. De esta manera, puede mantener el orden de prioridad para el resto de los estados y también asignar una prioridad a X.
Por ejemplo:
Aquí, la prioridad para X se puede establecer por separado en el enum
EstadosFlotantes
sin afectar el orden de prioridad del enumEstados
.Alternativamente, si no desea crear un enum separado para X, puede asignar un valor de marcador de posición para X en el enum
Estados
y manejarlo por separado en la lógica de su código. Por ejemplo:Aquí, X se le asigna un valor de marcador de posición de
Integer.MAX_VALUE
, que es el valor entero más alto en Java. De esta manera, X se puede tratar como un estado flotante sin afectar el orden de prioridad de los demás estados.En última instancia, la solución depende de los requisitos y limitaciones específicos de su proyecto.