Java check value in enum

Valor por defecto del enum de Java

Java proporciona muchas clases y tipos de datos para su uso en el desarrollo de software que ofrecen una mayor flexibilidad y potencia. Una de estas herramientas se llama clase de tipo enum, y proporciona la capacidad de crear constantes definidas que proporcionan más control sobre el software que usted hace y cómo los usuarios pueden interactuar con él.

Un Java Enum es una clase de tipo Java que se utiliza para definir colecciones de constantes para su software según sus propias necesidades. Cada elemento de un enum de Java se llama una constante, una variable inmutable – un valor que no puede ser cambiado. Las constantes se utilizan con frecuencia para ayudar a definir los parámetros de funcionamiento y las directrices para una pieza de software o usuario.

Crear un enum es una tarea sencilla y no requiere mucha discusión. La declaración de una enum se hace utilizando la sintaxis estándar y se parece mucho a la declaración de las clases de Java. La única diferencia real es que se utiliza una palabra clave única reservada específicamente para las enum y que son objetos de tipo seguro. Los objetos de tipo seguro se comprueban en tiempo de compilación para la conformidad de tipo, y

¿Cómo se comprueba si un valor está presente en un enum en Java?

Enum. IsDefined es una comprobación que se utiliza para determinar si los valores existen en la enumeración antes de utilizarlos en su código. Este método devuelve un valor bool, donde true indica que el valor de la enumeración está definido en esta enumeración y false indica que no lo está.

  Linux: cómo hacer que un servicio se reinicie automáticamente si rompe

¿Se puede utilizar == para enum?

Dado que sólo hay una instancia de cada constante enum, se puede utilizar el operador == en lugar del método equals cuando se comparan dos referencias a objetos si se sabe que al menos una de ellas hace referencia a una constante enum.

¿Cómo se comprueba si una cadena está presente en un enum?

Entonces puedes hacer simplemente: values. contains(“tu cadena”) que devuelve true o false.

Java enum int value

El siguiente ejemplo define una enumeración llamada PetType que consiste en campos de bits individuales. A continuación, llama al método IsDefined con los posibles valores subyacentes de la enumeración, los nombres de las cadenas y los valores compuestos que resultan de establecer varios campos de bits.

Si las constantes de enumType definen un conjunto de campos de bits y el valor contiene los valores, nombres o valores subyacentes de múltiples campos de bits, el método IsDefined devuelve false. En otras palabras, para las enumeraciones que definen un conjunto de campos de bits, el método sólo determina si un único campo de bits pertenece a la enumeración. Para determinar si se establecen varios campos de bits en un tipo de enumeración etiquetado con el atributo FlagsAttribute, puede llamar al método HasFlag.

Si enumType es una enumeración que se define mediante el atributo FlagsAttribute, el método devuelve false si se establecen varios campos de bits en value, pero value no corresponde a un valor de enumeración compuesto, o si value es una concatenación de cadenas de los nombres de varios indicadores de bits. En el siguiente ejemplo, se define una enumeración Pets con el atributo FlagsAttribute. El método IsDefined(Type, Object) devuelve false cuando se le pasa un valor de enumeración que tiene dos campos de bits (Pets.Dog y Pets.Cat) definidos, y cuando se le pasa la representación de cadena de ese valor de enumeración (“Dog, Cat”).

  Awt eventqueue 0 java lang nullpointerexception

Enum de Java con múltiples valores

Si espera que la comprobación falle a menudo, podría ser mejor utilizar un simple bucle como otros han mostrado – si sus enums contienen muchos valores, tal vez construir un HashSet o similar de sus valores de enum convertidos a una cadena y consultar ese HashSet en su lugar.

Esto combina todos los enfoques de los métodos anteriores y debería tener un rendimiento equivalente. Se puede utilizar para cualquier enum, inline la solución “Edit” de @Richard H, y utiliza excepciones para los valores no válidos como @bestsss. La única desventaja es que hay que especificar la clase, pero eso lo convierte en un método de dos líneas.

Ejemplo de uso de enum en Java

El objeto compañero de un enum también define tres métodos de utilidad. El método valueOf obtiene un valor de enum por su nombre. El método values devuelve todos los valores de enum definidos en una enumeración en un Array. El método fromOrdinal obtiene un valor de enum a partir de su valor ordinal (Int).

Las declaraciones de casos de enum son similares a los constructores secundarios: tienen un ámbito fuera de la plantilla de enum, a pesar de estar declarados dentro de ella. Esto significa que las declaraciones de casos de enum no pueden acceder a los miembros internos de la clase enum.

  Javascript simular click

Los campos referenciados por Mercurio no son visibles, y los campos referenciados por Venus no pueden ser referenciados directamente (usando import Planet.*). Debe utilizar una referencia indirecta, como la demostrada con la Tierra.

Como autor de la biblioteca, es posible que desee señalar que un caso de enum no está destinado a ser utilizado. Sin embargo, podría querer manejar con elegancia la eliminación de un caso de su API pública, como por ejemplo, con casos especiales obsoletos.

Fuera de los ámbitos léxicos del enum Planeta o del objeto Planeta, las referencias a Planeta.Plutón producirán una advertencia de desaprobación, pero dentro de esos ámbitos aún podemos referenciarlo para implementar la introspección sobre los casos desaprobados:

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad