Transtipage object ----> class

sk8matt -  
Marco la baraque Messages postés 1030 Statut Contributeur -
Bonjour,

Pour mon projet informatique je doit remplir une liste d'objet mais certain object sont des Liste mais d'autre un object (du type Class noeudSituation) lorsque je recupere un objet de a liste je ne pet l'utiliser comme un noeudSituation mais avec le transtipage "(noeudSituation) Liste.ieme(i)" Si vs pouvez m'eclairé sur une facon de convertir cet object :S svp
A voir également:

2 réponses

neogenesis Messages postés 5303 Statut Contributeur 525
 
Bonsoir,

De quel langage parlez-vous ? Je pense au Java vu le typage fort utilisé par ce langage...

Votre message est un peu flou, si vous pouviez le préciser en respectant un minimum de syntaxe et pourquoi pas poster votre code, parce que là on est un peu hors contexte.

Mais peut-être qu'il suffit tout simplement de crée une méthode qui prend un objet d'une certaine classe et copie tous ses attributs dans un nouvel objet d'une autre classe en respectant le format des attributs.

0
sk8matt
 
oui dsl c pas tres clair
le language est Java en effet


int possibilite=0;
ListeTab generation = new ListeTab(7,noeudSituation.class);

for (int i=0;i<6;i++)
{
noeudSituation Nfils =(noeudSituation) L.ieme(i);
Nfils.getSituation().deplaceGraines(Joueur, possibilite);
generation.ajouterenqueue(new noeudSituation(Nfils.getSituation().valeurCoup(), possibilite, (noeudSituation)L.ieme(indiceListe),Nfils.getSituation()));
possibilite++;
}
L.ajouterenqueue(generation);

La classe liste est un tableau d'objet
Mais lorsque je veu utiliser l'objet de la liste il me renvoi un object que je n'arrive pas à convertir en noeudSituation
public class noeudSituation {
public int valeurCoup;
public int possibiliteChoisie;
public noeudSituation predecesseur;
public Tablier situation;
public noeudSituation(int val, int pos ,noeudSituation predecesseur ,Tablier situation)
{
setvaleurCoup(val);
setPossibilite(pos);
setpredeceseur(predecesseur);
setSituation(situation);
}
0
loupius > sk8matt
 
Pourquoi n'utilisez-vous pas les balises
 
.
Moi je ne peux pas lire un code qui n'est pas indenté. Désolé.

https://www.commentcamarche.net/infos/25843-guide-d-utilisation-du-forum-de-commentcamarche-net/
dans le paragraphe: Mettre en forme un morceau de texte
0
Marco la baraque Messages postés 1030 Statut Contributeur 329 > sk8matt
 
Bonsoir sk8matt,
Je n'arrive pas à comprendre ton code non plus parce qu'il nous manque pas mal de choses, et parce qu'il n'est pas cohérent (au niveau de la syntaxe et du style de codage). Les normes Sun imposent que le nom des classes commencent par une majuscule et les instances par une minuscule. Après libre à toi de les respecter ou non, mais garde au moins le même style, ici tout est fait à l'arrache et on ne comprend rien.

La solution qu'il faut utiliser un maximum, c'est non pas de caster en NoeudSituation, mais en là superclasse commune à NoeudSituation et au type de l'objet récupéré. Si c'est trop générique pour toi, il faut faire comme l'indique neogenesis : il faut posséder une méthode qui convertit un objet de type Object en NoeudSituation. Tu peux créer une méthode dans la classe NoeudSituation mais l'idéal reste de créer un constructeur :
public NoeudSituation(Object obj) {
 //do business
}


Cordialement,
0
sk8matt
 
oui dsl c pas tres clair
le language est Java en effet

int possibilite=0;
ListeTab generation = new ListeTab(7,noeudSituation.class);

for (int i=0;i<6;i++)
{
noeudSituation Nfils =(noeudSituation) L.ieme(i);
Nfils.getSituation().deplaceGraines(Joueur, possibilite);
generation.ajouterenqueue(new noeudSituation(Nfils.getSituation().valeurCoup(), possibilite, (noeudSituation)L.ieme(indiceListe),Nfils.getSituation()));
possibilite++;
}
L.ajouterenqueue(generation);

La classe liste est un tableau d'objet
Mais lorsque je veu utiliser l'objet de la liste il me renvoi un object que je n'arrive pas à convertir en noeudSituation
public class noeudSituation {
public int valeurCoup;
public int possibiliteChoisie;
public noeudSituation predecesseur;
public Tablier situation;
public noeudSituation(int val, int pos ,noeudSituation predecesseur ,Tablier situation)
{
setvaleurCoup(val);
setPossibilite(pos);
setpredeceseur(predecesseur);
setSituation(situation);
}
0