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

Java Discussion :

Création d'un objet à partir du nom d'une classe


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut Création d'un objet à partir du nom d'une classe
    Bonjour à tous,
    Voilà je cherche depuis hier à créer un objet depuis le nom d'une classe. En cherchant sur le forum j'ai avancé un peu en utilisant
    Class.forName("") mais le problème c'est que lorsque je fais une nouvelle instance de de la classe que j'obtiens avec ce Class.forName("") je n'ai pas accès aux méthodes de ma dite classe...
    Je vous montre le bout de code que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    strClassPackage = "testrelease.testreleasefct.testreleasefctppi.TestReleaseFctTC1";
    Class classTestCase = Class.forName(strClassPackage);
    Object Test = classTestCase.newInstance();
    En gros ensuite lorsque que je fais Test. je n'ai pas les méthodes que j'ai dans la classe TestReleaseFctTC1 (ces méthodes sont déclarées en public).

    Je vous remercie d'avance pour votre aide...
    bilowlex

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Ben c'est normal, test est de type java.lang.Object. Faudrait peut-être caster :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TestReleaseFctTC1 test = (TestReleaseFctTC1)classTestCase.newInstance();

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    Tout d'abord merci pour ta réponse
    En fait j'ai déjà essayé de faire ça mais le problème c'est que ce n'est pas toujours TestReleaseFctTC1, ça peut être TestReleaseFctTC2 ...
    En gros c'est le strClassPackage qui n'est pas toujours le même (dans l'exemple j'ai mis un cas particulier pour plus de facilité) et du coup je vois pas comment faire...

  4. #4
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    dans ce cas la il te faudra te tourner vers la réflexion

    jettes un coup d'œil à l'API java.lang.reflect

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    Ok merci je vais regarder et je vous tiens au courant

  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
    Salut,


    Quel est l'objectif de tout cela précisément ?

    a++

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    Le but est en fait de lancer une série de tests qu'on a séléctionnés au préalable parmi une liste qui se crée dynamiquement (chaque test correspond à une classe).
    Je ne veux pas avoir à rentrer le nom de mes classes à la main car le but est justement que tout ce fasse dynamiquement lorsque l'on créer un nouveau test (nouvelle classe)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Si toutes tes "nouvelles" classes ont un même objcetif, elles sont surement quelques points communs.. Pourquoi ne pas utiliser une interface ?
    Comme celà tu n'a pas à te soucier du nom complet de la classen tu travaille sur l'interface..

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

Discussions similaires

  1. Créer un nouvel objet à partir du nom de la classe de l'objet
    Par gueuldange dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 13/04/2015, 21h37
  2. Réponses: 1
    Dernier message: 27/05/2008, 10h50
  3. Accès à un objet à partir du nom de son parent
    Par SPKlls dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/04/2008, 14h45
  4. création d'1 objet à partir d'1 String
    Par AnthonyL44 dans le forum Langage
    Réponses: 8
    Dernier message: 22/08/2006, 10h20
  5. [POO] Instancier un objet avec le nom de la classe
    Par shinchun dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2006, 13h44

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