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 :

Instancier un objet avec un nom contenu dans une variable


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Instancier un objet avec un nom contenu dans une variable
    Bonjour, c'est encore moi avec mes questions

    J'ai un autre problème, je voudrais créer une méthode qui instancie des objets de type Equipe, avec forcément un nom à chaque fois différent ...

    Je voudrais faire un truc du style :

    public static void creerEquipe(String nomEquipe){

    Equipe nomEquipe = new Equipe("nomEquipe");

    }

    Malheureusement cela ne marche pas ! (ça serait trop beau ! )

    Quelqu'un aurait-il une solution à mon problème ?

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static Equipe creerEquipe(String nomEquipe){
     
    return new Equipe("nomEquipe");
     
    }
    Ceci dit dans le cas présent, si t'appelle juste le constructeur, ça sert un peu à rien.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    En fait cette méthode de création d'équipe va être utilisé plusieurs fois (autant de fois qu'il y a d'équipe dans la compétition) et donc je veux qu'a chaque vois la méthode m'instancie une Equipe mais cette objet aura à chaque fois un nom différent (celui passé en paramètre) qui en est l'occurance identique à ojbet.nom

    Je ne sais pas si j'ai été très clair ...

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si c'est le nom de la variable que tu veux, on t'as déjà répondu ici
    http://www.developpez.net/forums/d15...m-d-arraylist/
    que ce n'est pas possible.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Non c'est différent cette fois. Je m'explique:

    Je pourrais créer un objet Equipe de manière traditionnelle:
    Equipe France = new Equipe("France") //ici France est "l'identité de l'objet", mais c'est aussi le String France.nom

    Le truc c'est que ma méthode fera un fileread pour créer des joueurs.

    Donc je voudrais généraliser le processus de sort à ce que

    public static void creerEquipe(String nomEquipe){

    Equipe nomEquipe = new Equipe(nomEquipe);

    //...
    //...

    }

    me créé un objet comme lorsqu'on le créé traditionnellement mais sauf que creerEquipe pourras me créer aussi bien Equipe France = new Equipe("France") que Equipe Angleterre = new Equipe("Angleterre").

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    C'est le même problème mais à l'envers, ce n'est pas plus possible. Tu n'a pas les noms des variable. Tu ne peux donc ni lire ce nom ni leur attribuer de valeur à partir du nom qui serait dans une String.

    Pour faire plus simple, dis toi que le nom de la variable, une fois que c'est compilé, ça n'existe plus. Sauf si tu inclus les infos de debuggage complètes.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    D'accord donc il n'y a aucun moyen de contourner le problème ? Il n'y as pas une solution en java pour créer une méthode qui instancie différents objets ?

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 554
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 615
    Points
    21 615
    Par défaut
    Je comprends pas ce qui est difficile à tes yeux, en fait.
    Tu mets le nom dans une variable String, puis tu appelles le constructeur avec cette variable en paramètre.

    Tu as déjà écrit un code qui le fait et ça marche parfaitement. Il faudrait nous montrer ce qui ne marche pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si tu veux stocker les objets que tu as crees afin de les retrouver plus tard par leur nom, c'est d'une Map<String, Equipe> dont tu as besoin

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Thelvin :
    Je veux automatiser l'instanciation d'équipes et de joueurs : il y a 20 équipes dans la compétition avec 15 joueurs par équipe et je ne veux pas instancier manuellement les 300 joueurs de la compétition.. je veux une méthode qui, pour un nomEquipe, m'instancie cette équipe et chacun des joueurs (les caractéristiques des joueurs de chaque équipe est dans un fichier texte ""+nomEquipe+".txt). Le truc c'est que si l'objet créé par ma méthode est tout le temps identique, je pense qu'à chaque appel à cette méthode, l'objet précédent qui s'appelera pareil sera écrasé..

    Tchize_ :
    Est ce que tu peux m'en dire plus ?

  11. #11
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Je ne vois pas du tout où est le problème.
    Si tu as tes définitions d'équipes dans des fichiers spécifiques qui sont en lien avec le paramètre que tu passes au constructeur, le constructeur chargera dynamiquement le fichier de configuration et instanciera les sous-objets s'il y en a...
    Ensuite, pour récupérer une équipe particulière par son nom dans ton code, la Map<String, TonObjetEquipe> est la solution.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par paul59800 Voir le message
    Tchize_ :
    Est ce que tu peux m'en dire plus ?
    Je crois que tu confonds les variable où on stocke des références vers les objets, et les instance, qui sont créées par new.

    Pour reprendre ton cas, un exemple simple que tu pourrais automatiser à partir de ton fichier:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HashMap<String,Equipe> equipes = new HashMap<String,Equipe>();
     
    for (int i=0; i< nbreEquipes; i++){
     Equipe e  = lireEquipeSuivanteDansFichier();
     equipes.put(e.getNomEquipe(),e);
    }

  13. #13
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ou alors si tu as un fichier par équipe, quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Map<String, Equipe> map = new HashMap<String, Equipe>();
     
    for (String nomEquipe : listeEquipe)
    {
       map.put(nomEquipe, new Equipe(nomEquipe));
    }
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class Equipe
    {
       public Equipe(String nom)
       {
          pour chaque ligne dans le fichier "parametrage"+nom
          {
             affecter les propriétés
          }
       }
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/03/2013, 10h55
  2. Réponses: 8
    Dernier message: 19/07/2010, 15h50
  3. Réponses: 1
    Dernier message: 01/11/2007, 19h14
  4. Réponses: 4
    Dernier message: 26/07/2007, 21h56
  5. Instancier un type avec son nom contenu dans un String
    Par the666deus dans le forum Langage
    Réponses: 7
    Dernier message: 24/05/2007, 14h41

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