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éférence à partir d'une chaine


Sujet :

Langage Java

  1. #1
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut Référence à partir d'une chaine
    Hello !

    Je ne m'étais jamais posé la question jusqu'à présent, mais quelqu'un sait-il s'il est possible de récupérer une instance de classe à partir de sa référence donnée sous forme de chaine de caractères ?

    En gros quelquechose dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public maClasse maMethode(String uneRef) {
      return maClasse.getInstance(uneRef);
    }
    mais qui existe.........

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Oui, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public MaClasse maMethode(String uneRef) {
      try {
         return (MaClasse ) Class.forName(uneRef).newInstance();
      } catch (ClassNotFoundException cnfe) {
         ...
      } catch (InstantiationException ie) {
         ...
      } catch (IllegalAccessException iae) {
         ...
      }
      return null;
    }

  3. #3
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Salut Hervé,

    Merci pour ta réponse !

    Je ne pense pas que le code que tu m'as fourni convienne. Ce dernier me permet, à partir du nom d'une classe, d'en récupérer une nouvelle instance. Or ce que je cherche à faire, c'est de récupérer le pointeur vers une instance existante de cette classe. Quand tu fais un .toString() sur une instance, il te retourne généralement quelquechose du genre "com.bla.test.nomClasse@12345".

    J'aimerais, à partir de ça, trouver un mécanisme qui me retourne le pointeur correspondant à cette chaine.

    Thanks !

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par DevTeam_ Voir le message
    J'aimerais, à partir de ça, trouver un mécanisme qui me retourne le pointeur correspondant à cette chaine.
    Ce n'est pas possible.


    a++

  5. #5
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Pas cool !

    Je dois surement être le seul au monde à en avoir besoin, donc ça risque d'être tendu de demander à intégrer la fonctionnalité dans J2SE7.........

  6. #6
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par DevTeam_ Voir le message
    Je dois surement être le seul au monde à en avoir besoin, donc ça risque d'être tendu de demander à intégrer la fonctionnalité dans J2SE7.........
    Je ne vois pas trop l'intérêt surtout...


    Expliques ce que tu veux faire, il doit surement y avoir un meilleur moyen...

    a++

  7. #7
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    En Java aucun. Je voulais reproduire au plus proche possible le fonctionnement d'une appli client/serveur écrite dans un autre langage (lancement d'un programme en mode persistant par le serveur, propagation du handle de ce programme au client qui le stocke et qui peut appeler à distance des méthodes sur ce handle). Seul le côté serveur doit être réécrit en Java.

    Le moyen de contourner va être de mettre en place une map côté serveur qui permettra, à partir de la référence format chaine de retrouver l'objet correspondant...

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 25
    Par défaut
    Ce qui tu veux faire peut être fait avec RMI. Regarde un peu dans cette direction. Ton idée d'utiliser les identifiants chaines des objects pour les retrouver n'a aucune chance de fonctionner plus de 5 minutes... Cela n'a pas été prévu pour ça... Et essaie de penser un peu moins "Handle" et "Pointeur" quand tu designe des applis java... (même si les concepts derrière y ressemblent).

    Bonne chance

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    De manière très basique, c'est ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class EntrepotObjets {
      private static Map<String,Object> objets = new HashMap<String,Object>();
      public static deposer (Object obj) {
        objets.put(obj.getClass() + "@" + System.identityHashCode(obj), obj);
      }
      public Object prendre (String ref) {
        return objets.get(ref);
      }
    }

Discussions similaires

  1. Réponses: 23
    Dernier message: 18/02/2010, 16h42
  2. Entrée a partir d'une chaine de caractère
    Par Spartan03 dans le forum C
    Réponses: 5
    Dernier message: 18/03/2006, 20h48
  3. Réponses: 9
    Dernier message: 15/01/2006, 21h22
  4. Réponses: 7
    Dernier message: 15/11/2005, 11h14
  5. [Struts]Ecrire un html:link à partir d'une chaine
    Par cowa dans le forum Struts 1
    Réponses: 5
    Dernier message: 12/05/2004, 18h10

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