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 :

Appel d'une classe par son nom qui est stocké dans string


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2012
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Appel d'une classe par son nom qui est stocké dans string
    Je développe une application qui nécessite la méthode suivante :

    l'interface nous sert a créer des classes , c'est a dire l’utilisateur entre le nom des classe et les attributs qui la constitue ainsi que leur type , et c'est une fonction qui se charge d'écrire les corps de la classe d’après les informations saisi dans le formulaire.

    jusque ici tout marche nickel .

    le problème c'est que quand je veut appeler une classe :
    une liste déroulante (Jcombobox) contient la liste de toutes les classes crée
    l'utilisateur choisi un nom parmi la liste , la fonction stock ce nom dans un string
    et après on veut appeler cette classe l'instancier :
    normalement on fait
    nomclasse nom = new nomclasse();
    nomclasse.getAttribut1();
    pour un appel statique
    mais dans mon cas le nom de la classe est toujours stocké dans un srting
    comment pourrai-je faire cette appel pour k ça soit genre :
    "nomRecupere" nom = new "nomRecupere"();
    ou bien "nomRecupere".getgetAttribut1(); pour y accéder je ne sais pas mais que ça me donne accès a la classe .

    je sais pas si j'ai bien su expliquer le problème mais je bloque vraiment sur cette partie et je souhaite que vous m'aidiez s'il vous plait
    merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Renseigne toi sur l'api Reflection (java.lang.reflect)

    quelques bouts de codes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Class c = Class.forName("NomDeClasseComplet");  // Charge une classe
    Object obj = c.newInstance(); // Instancie un objet de la classe chargée
    Method m = c.getMethods(nom, argTypes); // Récupère la méthode souhaitée
    Object retour = m.invoke(obj, args); // Appelle la méthode souhaitée

  3. #3
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Pour exécuter une classe existante a partir de son nom, il te faut passer par l'introspection: http://ricky81.developpez.com/tutori...pi/reflection/

    Ceci dit, ce qui m'inquiète c'est que tu parles aussi de "d'écrire les corps de la classe d’après les informations saisi dans le formulaire". Java n'est pas un langage de script : les classes que tu crées doivent être compilées et chargées par la JVM avant de pouvoir être utilisées.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Collégien
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Points : 8
    Points
    8
    Par défaut
    Masmaa,

    Ton explication n'est pas claire.

    1. Si tu souhaites appeler des methods de class existantes alors utilise l'introspection et réfères toi au lien d'Uther.
    2. Si tu souhaites creer dynamiquement de nouvelles class, alors tu devrais pouvoir utiliser les outils du package javax.tools. J'ai trouve un petit tutoriel en anglais http://www.accordess.com/wpblog/an-o...n-api-jsr-199/

Discussions similaires

  1. [Toutes versions] Appel d'une variable par son nom (string)
    Par Wini29 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/02/2013, 20h43
  2. Réponses: 5
    Dernier message: 31/05/2012, 16h00
  3. [DOM] appeler une fonction via son nom (qui est une string)
    Par elekis dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/07/2008, 13h06
  4. Réponses: 3
    Dernier message: 25/02/2007, 18h49
  5. Réponses: 8
    Dernier message: 19/10/2006, 15h41

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