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 :

Prob instanciation de classe avec .forName(var).newInstance()


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut Prob instanciation de classe avec .forName(var).newInstance()
    Salut,

    J'ai un petit soucis dans le développement de mon appli.
    Je m'explique :

    J'aimerai instancier une classe selon le paramètre en entrée.
    Du genre faire cela :

    maVoiture = (Voiture)Class.forName("Voiture"+uneMarque).newInstance();

    Message d'erreur :
    Erreur ClassNotFoundException de la voiture : VoiturePeugeot

    Les différentes classes de voitures sont déclarées dans mon application.

    J'ai déclaré une classe mère "Voiture" et ses classes filles par marque : "VoiturePeugeot", "VoitureCitroen", "VoitureBmw", etc...

    Lorsque l'utilisateur choisit par exemple Peugeot dans l'interface graphique, l'application doit instancier la classe VoiturePeugeot.

    Dans la classe mère j'ai un constructeur sans paramètres d'entrée et elle n'est pas astraite.

    Pouvez vous m'éclaircir sur mon problème...

    Merci de votre aide
    Steuve

  2. #2
    Membre averti Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Points : 323
    Points
    323
    Par défaut
    Tes classes sont sûrement dans un package quelconque. Si elles sont dans un package qui s'appelle truc.machin, fais plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maVoiture = (Voiture)Class.forName("truc.machin.Voiture"+uneMarque).newInstance();
    Et là ça marche.
    "Et tu comprendras pourquoi mon nom est l'Eternel, quand sur toi s'abattra la colère du Tout-puissant."

  3. #3
    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,


    Apparemment tes classes appartiennent au package "par défaut", ou plus exactement elles n'appartiennent à aucun package...

    Or il est impossible d'accéder à des classes qui n'appartiennent pas à un package de cette manière...

    Utilises des packages c'est plus propre !

    a++

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    merci pour votre aide.

    ça marche !!

    J'avais mit ces classes dans un package mais j'avais pas pensé à indiquer le package.

    Ps: ya rien à dire sur ce forum... en moins de 10min on a une solution qui marche

    Biz les gens
    Steuve

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2011, 10h17
  2. Réponses: 0
    Dernier message: 24/01/2011, 23h59
  3. Instancier une classe avec un arraylist et exception
    Par Chacha35 dans le forum Collection et Stream
    Réponses: 17
    Dernier message: 24/03/2010, 16h10
  4. Instancier une classe avec son nom
    Par Arrakis dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2009, 17h57
  5. [PHP 5.0] instancier une classe avec son nom dans une variable
    Par Nnay_ dans le forum Langage
    Réponses: 1
    Dernier message: 12/02/2009, 12h49

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