IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

problem avec javassist


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Par défaut problem avec javassist
    salut,

    j'ai crée une classe avec javassist , je lui assigne des méthodes dont toString() et des champs et je crée une instance de cette classe.

    Mais quant dans une méthode j'apelle l'instance, et j'essaye d'excuter toString() sur l'objet c'est le toString() par défaut qui est executé , je m'explique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    //on crée la classe 	
    ClassPool pool=ClassPool.getDefault();
    Loader cl=new Loader(pool);
    CtClass ct=pool.makeClass("Object");
    //ajout des champs
    CtField f=new CtField(double,x,ct );
    ct.addField(f,"20");
    CtField f=new CtField(double,y,ct );
    ct.addField(f,"10");
    //ajout des méthodes
    ct.addMethod(CtNewMethod.make("public String toString()
    	                                      {
    		                       return this.x + "@" +this.y;
    	                                      }",ct));
    ct.writeFile();
    c=cl.loadClass("Object");//on crée la Classe
    instanceC=c.newInstance();
    return instanceC;
    dans une autre méthode je récupère l'instance
    et je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(o.toString());	//avec le o = instanceC
    mais au lieu de m'afficher 20@10
    ca m'affiche Object@1b16e52

    je comprend rien

    De l'aide svp

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 76
    Par défaut
    je me souviens plus trop de Javassist, mais la, on dirait que tu manipule la classe Object, pas que tu la créé. Essaye de changer le nom de ta classe pour voir

  3. #3
    Membre éclairé Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Par défaut
    Citation Envoyé par waddle
    je me souviens plus trop de Javassist, mais la, on dirait que tu manipule la classe Object, pas que tu la créé. Essaye de changer le nom de ta classe pour voir
    voila j'ai changé je crée une classe Truc cette fois mais rien a faire ca m'affiche le toString() par défaut Truc@1b16e52

    Je comprend pas

    personne ne fait du javassist ici

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo