Instance of et Cast d'objet
Bonjour à tous,
voila je vous expose mon problème...
j'ai une méthode qui déclare un object command. j'ai deux types de command possible (adminCommand et OperativeCommand) et je ne connais pas à l'avance le type de commande en question.
Je parcours un arbre XML avec JDom et au fur et à mesure j'initialise mon objet.
Or j'ai un souci car je ne sais pas comment faire bénéficier à mon object nouvellement instancié (soit AdminCommand soit OperativeCommand) des méthodes soit de l'une soit de l'autre...
Je m'explique. J'ai un objet:
Code:
private Object command;
au fur et à mesure du parcours de l'arbo XML je découvre le type de commande:
Code:
1 2 3 4 5 6 7 8
|
if(courant.getName().equals("command_type")){
//On crée notre objet admin
if(courant.getAttributeValue("value").equals("ADMIN"))
command = new AdminCommand();
else
command = new OperativeCommand();
} |
Jusque là tout va bien.
Par contre par la suite, j'ai d'autre attributs que je dois associer à une classe ou à l'autre selon son type:
Code:
1 2 3 4 5 6
|
else if(courant.getName().equals("command")){
if(command instanceof AdminCommand){
command.setCmd(courant.getAttributeValue("value"));
}
} |
Dans cet exemple la méthode setCmd appartient à la classe AdminCommand mais le compilo me dit qu'il ne la connait pas pour le type Object (normal).
J'ai tenté de caster l'appel à la méthode setCmd:
Code:
1 2
|
(AdminCommand) command.setCmd(courant.getAttributeValue("value")); |
Mais ça ne plait pas non plus au compilo.
Quelqu'un aurait une idée ?
Merci,
Tiamat.