j'ai un problème avec les enum en java :
comme je dois donner des valeurs particulières dans mon enum, j'ai ajouté un attribut id qui stocke cette valeur
public class Chunk3DS { //[...] public enum ChunkType { MAIN_CHUNK(0x4d4d), //[...] 3DS_VERSION(0x0002) ; private int id ; private ChunkType( int id ) { this.id= id ; } public int getID() { return id ; } } }
Ensuite, dans mon programme je lis dans un fichier des entiers 16bits qui correspondent aux valeurs stockées dans l'attribut ID de mon enum.
La question est la suivante : comment faire pour transformer l'entier 16 bits lu dans le fichier en un enum Chun3DS.ChunkType ??? (sans se tapper toute l'enumeration avec un foreach pour comparer les valeurs (à priori je suppose que je pourrais mettre ça dans une méthode static de mon enum ChunkTypes mais je trouve ça idiot de faire un foreach pour trouver une valeur et de faire un switch sur l'enum trouvé juste derrière))
en gros ce que je voudrais pouvoir faire c'est :
Chunk3DS.ChunType monEnum= readAShortFromFile(file) ; switch ( monEnum ) { case MAIN_CHUNK: action1() ; break ; case 3DS_VERSION: action2() ; break ; //... }
edit : correction de quelques erreurs