Je reçois une valeur de retour sous la forme d'un long ou d'un int depuis le code natif d'Android, que je veux convertir ou faire correspondre avec un enum, à des fins de traitement. Est-ce possible ? Comment ?
Réponses
Trop de publicités?
Kuffs
Points
12318
Vous pouvez configurer votre enum de façon à ce qu'il ait le long ou l'int intégré.
Par exemple Créer ce fichier 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;
}
}
Vous pouvez alors accéder aux valeurs assignées de la manière suivante :
ePasswordType var = ePasswordType.NUMBER;
int ValueOfEnum = var.getValue();
Pour obtenir l'enum lorsque vous ne connaissez que l'int, utilisez ceci :
ePasswordType t = ePasswordType.fromInt(0);
Les Enums en Java sont très puissants car chaque valeur peut être sa propre classe.