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

avec Java Discussion :

Créer un nouvel objet à partir du nom de la classe de l'objet


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Créer un nouvel objet à partir du nom de la classe de l'objet
    Bonjour a tous

    Alors pour présenter le contexte de ma question, je suis en train de développer un jeu de tower defense en java, nous disposons donc de la classe "TourArcher" (Tourelles.TourArcher)

    Donc normalement, si on veut créer un nouvel objet "TourArcher", on écris simplement "new TourArcher()";
    sauf que la j'aimerai créer ma tour d'archer à partir de : "(new TourArcher()).getClass()" .. (ou (new TourArcher()).getClass().getName() mais la ça me semble compliqué ^^)

    Est-ce Possible ? si oui, comment ? (dois-je préciser ma question ?)
    Merci.

    ( .newInstance() ne me servirai a rien : je transporte que la classe : le nouvel objet serai de style "new TourArcher(tab.getTableau()[c.getCoordX][c.getCoordY], tab)" alors que je transporte un "new TourArcher()" )

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu peux récupérer le constructeur de toute classe, pour une liste de type de paramètres données :

    par exemple si le premier paramètre est String, le deuxième et le troisième sont int
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Constructor tourArcherConstructor = TourArcher.class.getConstructor(String.class, int.class, int.class);
    Et ensuite l'invoquer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tourArcher = tourArcherConstructor .newInstance("Truc", 42, 25);

    Voir tutoriel Developpez.
    Voir aussi plus généralement Java Reflexion

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci !! je ne pensais pas avoir une réponse aussi rapidement !
    Resolu

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/06/2014, 11h37
  2. Création d'un objet à partir du nom d'une classe
    Par bilowlex dans le forum Général Java
    Réponses: 16
    Dernier message: 07/11/2007, 16h18
  3. Réponses: 16
    Dernier message: 09/10/2006, 10h12
  4. Réponses: 1
    Dernier message: 13/06/2006, 09h23
  5. [Reflect] Créer un array d'objets avec le nom de leur classe
    Par Onarap dans le forum API standards et tierces
    Réponses: 18
    Dernier message: 12/06/2006, 12h24

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