Recibo un valor de retorno en forma de código nativo largo o int de Android en Android, que quiero convertir o hacer coincidir con enum, para fines de procesamiento. Es posible ? ¿Cómo?Cómo hacer coincidir int a enum
Respuesta
Si usted tiene el control total de los valores y las enumeraciones, y son secuenciales, puede utilizar la enumeración valor ordinal:
enum Heyo
{
FirstVal, SecondVal
}
...later
int systemVal = [whatever];
Heyo enumVal = Heyo.values()[systemVal];
int againSystemVal = enumVal.ordinal();
Puede configurar su enumeración para que tenga el int largo o integrado.
por ejemplo: Crear este archivo ePasswordType.java
public enum ePasswordType {
TEXT(0),
NUMBER(1);
private int _value;
ePasswordType(int Value) {
this._value = Value;
}
public int getValue() {
return _value;
}
public static ePasswordType fromInt(int i) {
for (ePasswordType b : ePasswordType .values()) {
if (b.getValue() == i) { return b; }
}
return null;
}
}
A continuación, puede acceder a los valores asignados de esta manera:
ePasswordType var = ePasswordType.NUMBER;
int ValueOfEnum = var.getValue();
Para obtener la enumeración cuando sólo se conoce el int, el uso esto:
ePasswordType t = ePasswordType.fromInt(0);
Enumerados en java son ve poderoso porque cada valor puede ser su propia clase.
Este es un enfoque mucho mejor que usar ordinal(). Para saber por qué, lea Java efectivo –
@Kuffs: ¿Existe también una forma adecuada de ** establecer ** la enumeración utilizando el valor entero? – Levit
@Levit El valor se establece en tiempo de diseño, no en tiempo de ejecución. Si quieres decir recuperar el valor enum cuando solo conoces el int, mira mi respuesta editada. – Kuffs
- 1. ¿Cómo convertir un Enum a un int?
- 2. Cómo convertir int a enum en C++?
- 3. Cómo convertir el valor enum a int?
- 4. Convertir enum a int de Python
- 5. Serialize enum como int
- 6. NÚMERO: Mysql que convierte Enum a Int
- 7. Java: Enum vs. Int
- 8. C# Enum o constantes int
- 9. Regex cómo hacer coincidir un carácter opcional
- 10. ¿Cómo hacer coincidir la URL en C#?
- 11. ¿Cómo hacer coincidir los subdirectorios en RewriteCond?
- 12. ¿Cómo hacer coincidir, en coincidencia en raqueta?
- 13. jQuery hacer coincidir múltiples clases
- 14. ¿Cómo serializo un valor enum como un int?
- 15. OpenCV. Dibujo de rectángulo al hacer coincidir
- 16. ¿Por qué ENUM es mejor que INT
- 17. ¿Cómo hacer coincidir patrones con una clase anidada en Scala?
- 18. ¿Qué significa "int * a = (int [2]) {0, 2};" exactamente hacer?
- 19. objeto de C# cast de tipo int a enum nulo enum
- 20. Cómo convertir int * a int
- 21. RegEx para hacer coincidir cadena completa
- 22. ¿Cómo hacer coincidir el cifrado de ColdFusion con Java 1.4.2?
- 23. Consulta LINQ para hacer coincidir varias palabras
- 24. RegEx para hacer coincidir cosas entre paréntesis
- 25. Cómo hacer coincidir caracteres unicode con boost :: spirit?
- 26. ¿Cómo hacer coincidir los guiones con la expresión regular?
- 27. Regex: cómo hacer coincidir patrones superpuestos (quizás específicos de Python)
- 28. Cómo hacer coincidir el signo de exclamación (!) En PHP?
- 29. Regex: cómo hacer coincidir todo excepto un patrón en particular
- 30. Nokogiri: cómo seleccionar nodos al hacer coincidir el texto?
No se recomienda el uso del ordinal para obtener un "valor" para una enumeración. En su lugar, use un campo de instancia en su lugar. Vea el Item 31 en la 2da edición de Effective Java de Josh Bloch. –