Bonjour a tous,
Je post ce message après de LONGUES heures à galérer et des regards dignes d'inquisiteurs devant une sorcière venant d'amis développeurs...
Essayant de travailler sur une version simplifié d'emulateur en java, j'ai donc un grand nombre de class différentes sérialisés, envoyé, et deserialisé de l'autre côté.
Toutes ses classes ( ConnectionsMessage, UseCommandMessage, SayMessage etc... ) Héritent d'une classe abstraite BasicMessage qui implemente serializable
Mon problème est à la réception d'un message, mon socket/stream me renvoies un objet "obj" de type Object.
Si je print obj.getClass() j'obtiens bien le type de l'objet ( ConnectionMessage par exemple ), mais ça devient compliqué quand je veux caster mon objet dans sa vrai forme... Une solution, simpliste, serait une suite de
if(obj instanceOf ConnectionMessage )
{ (ConnectionMessage) obj; }
Mais avec un potentiel TRES grand nombre de messages différents, ça va donner un TREEES grand nombre de if else
Du coup, comment faire pour caster mes messages reçu ? J'ai cherché au niveau de la réflection, avec des trucs du genre ConnectionMessage.class.cast(obj), ça ça fonctionne, mais du coup il faudrait adapter dans ce style qui bien entendu ne fonctionne pas.. :
obj.getClass.class.cast(obj)
Vous voyez le délire?
Merci d'avance à quiconque saura m'aider!