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 :

Utilisation objet Class


Sujet :

Langage Java

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut Utilisation objet Class
    bonjour à tous.

    Voila, j'ai défini un objet de la classe Class, de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (this.cdrTypeVersion.equals((String) s_TYPE_XNMS_2_2))
    {
         CdrFileToInstance = CdrFileXNMS2_2.class;
     
    } 
    else 
    {
         CdrFileToInstance = CdrFileXNMS3_0.class;
    }

    Après j'aimerais appeler le constructeur d'une de ces classes, dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CdrFileToInstance objet = new CdrFileToInstance(paramètres)
    Est ce que c'est possible ? y-t-il des méthodes dans la classe Class qui permettent de le faire ?

    Merci d'avance !!

  2. #2
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut
    Ma foi c'est pas mal du tout...

    J'essaierai lundi lol

    Merci beaucoup

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    C'est un peu plus complexe dans ce qu'il veut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import java.lang.reflect.*;
     
    try {
      Constructor constructor = aClass.getConstructor(<listing ou tableau des classes de chacun des parametres>);
      CdrFileToInstance obj = (CdrFileToInstance)constructor.newInstance(<listing ou tableau des valeurs de chacun des parametres>);
    }
    catch (<tout un tas d exception differentes>) {
     ...
    }
    Note que tu peux egalement utiliser Class.forName() pour recuperer la bonne classe plutot que d'utiliser des comparaisons de chaines (enfin ca depend de ce que tu veux faire et des valeurs contenues dans ces chaines).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut
    Effectivement j'ai bien utilisé Class.forName() pour récupérer ma classe, c'est pile poile ce dont j'avais besoin.

    Après le new instance marche quasi niquel, mis à part qu'il n'accepte pas mes paramètres...

    en fait quand je le laisse sans paramètres : sans problème, et pas d'erreur de compil.

    Quand je cherche à lui donner un paramètre, erreur de compil :

    The method newInstance() in the type Class is not applicable for the arguments (String)...

    Voila mon code mtnt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Class cdrFileClass = Class.forName("main.CdrFileXNMS"+sVersion);
    fichierCDR = (CSVFile) cdrFileClass.newInstance(nomFichier) ;
    La il plante avec nomFichier passé en paramètre (bien sur il est renseigné au dessus ...)


    edit : sympathique jviens de voir sur un site que le newInstance est bien pour créer des instances d'objet ayant un constructeur sans paramètre...

    et la j en arrive à getConstructor...

  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,


    Le code de bouye qui utilise la réflection et la classe Constructor devrait marcher...


    a++

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/01/2012, 17h59
  2. utilisation de classes d'objet
    Par thomasthosma dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/11/2010, 15h40
  3. utiliser objet classe vb.net
    Par alicia26 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/06/2009, 16h11
  4. Réponses: 2
    Dernier message: 30/05/2006, 15h26
  5. Réponses: 1
    Dernier message: 09/02/2006, 16h59

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