Bonjour à tous,

J'ai un besoin un peu particulier et je ne sais pas trop comment l'aborder.

Imaginons une classe A avec différents types :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
class A
{
	public enum Types {
		AUTO(0), MANU(1), SEMI(2);
		//Suite de l'énum
	};
}
Ces types correspondent à un champs dans une base de données, d'où l'attribution d'un entier.

Une application tierce (non java) m'envoie une valeur. Cette valeur correspond à un des types. Cependant plusieurs valeurs peuvent correspondre à un même type.

Par exemple les valeur de 0 à 125 correspondent au mode AUTO ,126 à 322 correspondent à MANU et 217 uniquement correspond à SEMI. Cela permet en principe d'associer au mode un chiffre. Si je reçois 10 , je sais par exemple que je suis en mode AUTO n° 11 alors que 127 correspond au mode MANU 2.

Je souhaiterais donc dans ma classe ajouter une méthode findTypeByValue(int value) me permettant de retrouver un type (enum) en fonction de la valeur reçue. Avant de me lancer dans un ensemble de if/else if imbuvable , existe-il une solution plus élégante au problème ?

Merci