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
Configuration: Windows XP
Mozilla Firefox

2 réponses

  1. neogenesis Messages postés 5303 Statut Contributeur 530
     
    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
    1. 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
      1. 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
  2. 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