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

Langage Java Discussion :

Récupérer une instance de classe à partir de mon.package.MaClasse@hashCodeEnExa


Sujet :

Langage Java

  1. #1
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut Récupérer une instance de classe à partir de mon.package.MaClasse@hashCodeEnExa
    Bonjour,

    Tout est dans le titre. Je veux récupérer l'instance d'une classe dont j'ai le toString() par défaut (mon.package.MaClasse@hashCodeEnExa).

    Est-ce possible ?
    Si oui, comment ?

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Pas sûr de comprendre ce que tu veux :

    • Tu veux récupérer n'importe quelle instance de la classe ? Dans ce cas ce doit être possible avec la reflection si le type est instanciable.
    • Tu veux récupérer l'instance exact qui a généré ce toString() ??? Dans ce cas c'est impossible IMHO.


    a++

  3. #3
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    Pas sûr de comprendre ce que tu veux :

    • Tu veux récupérer n'importe quelle instance de la classe ? Dans ce cas ce doit être possible avec la reflection si le type est instanciable.
    • Tu veux récupérer l'instance exact qui a généré ce toString() ??? Dans ce cas c'est impossible IMHO.


    a++
    Merci pour ta réponse rapide.

    Hum le type est instanciable. L'instance exacte pas forcément mais je veux le même contenu

    IMHO : Késako ?

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par BiM Voir le message
    Hum le type est instanciable. L'instance exacte pas forcément mais je veux le même contenu
    Dans ce cas on est plus proche du second cas, et je ne pense pas que ce soit possible...

    Pourquoi as-tu besoin de faire ceci ?

    Citation Envoyé par BiM Voir le message
    IMHO : Késako ?
    C'est un sigle anglais qui signifie "A mon avis" (désolé pour l'anglicisme )

    a++

  5. #5
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Dans ce cas on est plus proche du second cas, et je ne pense pas que ce soit possible...

    Pourquoi as-tu besoin de faire ceci ?


    C'est un sigle anglais qui signifie "A mon avis" (désolé pour l'anglicisme )

    a++
    J'ai un petit problème de JSP alors j'utilise un truc moche et sale pour pas refaire toute la page (puisque l'application risque d'être entièrement refaite d'ici pas longtemps). Alors j'ai le nom de mes classes mais si ce n'est pas possible je vais m'arranger autrement. Merci !

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 90
    Points
    90
    Par défaut
    Ma première réaction a été de penser que ça n'est pas possible parce qu'il faut d'une manière où d'une autre parser la table d'allocation de la JVM et je ne connais pas d'API dans le JDK qui permette ce genre de manipulations.

    Mais j'ai regardé un peu le net et je suis tombé là dessus: http://publib.boulder.ibm.com/infoce...assFinder.html

    Si IBM arrive à faire un code qui permet d'obtenir la liste de toutes les instances d'une classe donnée, c'est que ça doit bien être réalisable. Ensuite, c'est simple dans cette liste de trouver la bonne instance...

    Maintenant, je ne sais pas (encore) comment il ont fait ça.

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    BiM : détaille ton problème


    Yomhgui : il y a des chances que ce soit spécifique à leur JVM

    Sinon c'est peut-être possible via les outils de monitorings, mais c'est vraiment sortir l'artillerie lourde !!!

    a++

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    BiM : détaille ton problème


    Yomhgui : il y a des chances que ce soit spécifique à leur JVM

    Sinon c'est peut-être possible via les outils de monitorings, mais c'est vraiment sortir l'artillerie lourde !!!

    a++
    Bon c'est pas grave, j'ai modifié la méthode toString() et j'arrive à récupérer le contenu de mon objet (enfin à le reconstituer). Pour une fois que je fais pas un truc propre, on va pas m'emm*****

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    BiM : détaille ton problème


    Yomhgui : il y a des chances que ce soit spécifique à leur JVM

    Sinon c'est peut-être possible via les outils de monitorings, mais c'est vraiment sortir l'artillerie lourde !!!

    a++
    Oui, je le pense aussi, mais dans le doute...

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par Yomhgui Voir le message

    Mais j'ai regardé un peu le net et je suis tombé là dessus: http://publib.boulder.ibm.com/infoce...assFinder.html

    Si IBM arrive à faire un code qui permet d'obtenir la liste de toutes les instances d'une classe donnée, c'est que ça doit bien être réalisable. Ensuite, c'est simple dans cette liste de trouver la bonne instance...

    Maintenant, je ne sais pas (encore) comment il ont fait ça.
    T'as pas du bien lire le texte, ca te retourne uniquement les instances de java.lang.Class, rien d'autre. Et ca c'est "raisonnablement" facile à faire puisque le classloader garde un handle sur toutes ses classes.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    T'as pas du bien lire le texte, ca te retourne uniquement les instances de java.lang.Class, rien d'autre. Et ca c'est "raisonnablement" facile à faire puisque le classloader garde un handle sur toutes ses classes.
    Je suis passé vite fait là dessus: "Find all the java.lang.Class objects associated with a particular class in the Java runtime". Ca prête un peu à confustion je trouve (find objects associated to a class), mais tu as raison. A regarder les méthodes, ce sont des helpers pour manipuler les Class. Rien de bien sorcier d'une part et rien qui traite la question...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 17
    Dernier message: 03/05/2011, 11h35
  2. Supprimer une instance de classe à partir d'un élément de l'instance
    Par SandyF dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 05/10/2010, 17h09
  3. Nom d'instance de classe à partir d'une string
    Par nofasc95 dans le forum C#
    Réponses: 2
    Dernier message: 06/02/2009, 12h47
  4. [POO] Récupérer une instance de classe
    Par oranocha dans le forum Langage
    Réponses: 9
    Dernier message: 01/09/2008, 08h39
  5. Réponses: 4
    Dernier message: 27/07/2007, 20h34

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