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 :

Comment passer le nom d'un objet à créer en argument


Sujet :

avec Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut Comment passer le nom d'un objet à créer en argument
    Comment passer le nom d'un objet à créer en argument
    soit la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Client {
     
    public Client (String nom) {
    facture = new Facture() ;
    }
    J'aimerai pouvoir entre en ligne de commande le nom que je donnerai
    à mon objet facture.Et non pas pas à
    chaque fois modifier le code de la classe client
    pour entrer un nouveau nom à facture.

    J'ai tenté
    dans le constructeur de client un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Client {
     
    public Client (String nom,String facture) {
    facture = new Facture() ;
    }
    Mais il ne s'attend pas à avoir un String mais un type objet si je mets un type objet
    je ne peux pas le passer en ligne de commande.

    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, c'est impossible, quel est l'intérêt de la chose? comment par la suite utiliser la variable si on ne connait pas son nom?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    C'était juste pour test j'avais besoin de plusieurs clients donc je pensais à un truc de feignant du genre en ligne de commande je tape java Client nom facture.
    Parce qu'à chaque fois je suis obligé de modifier à la main et de donner un autre nom à facture puis de sauvegarder recompiler et executer je penser à
    qqchose de plus simple si c'est pas possible je continuerai comme ça alors.

    Merci

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


    Heu... Perso je n'ai pas vraiment compris ce que tu veux faire dans cet exemple !?
    Tu pourrais être plus explicite ?

    a++

  5. #5
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    D'après ce que j'avais compris c'était pour avoir un nom de variable variable.
    Mais avec le 2è post j'avoue ne pas voir le rapport...


    Pourquoi vouloir un nom de la variable facture différent entre 2 lancements de l'application?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    Alors pour présenter mon problème , je travaille sur RMI.J'ai un client qui se connecte à un serveur puis s'enregistre dans le registry pour l'instant si je veux plusieurs clients je vais dans le code du client et je modifie ce qu'il y a en gras.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
       public Client(String nom){
                try{
    
            this.nom = nom ;
            
            // le client implemente aussi l'interface
            PairInt  noeudClient2 = new pairImlp(nom) ;
            
            System.out.println("Un objet client a été créé ") ;
         //   Le client va aussi s'inscrire dans le rmiregistry
          //  par un Naming.bind
            
            Naming.bind("nom2",noeudClient2) ;
            
            System.out.println("Je suis bien enregistré dans le registry") ;
            
            // En même temps il va rechercher un autre client
            PairInt ref = (PairInt)Naming.lookup("rmi://localhost/noeud2") ;
            n = ref.donnerNom(nom);
            System.out.println(n) ;
            System.out.println(ref.Addition(8,10)) ;
            System.out.println(ref.sinscrire(nom)) ;
            ref.afficherListe() ;
            System.out.println(ref.afficherListe2()) ;
        }
        catch (Exception e){
            System.out.println(e.getMessage()) ;
        }
                
    } // Fin du constructeur
        // Début de la classe de test
        public static void main (String [] argv)
        {
            Client client = new Client(argv[0]) ;
        }
    
    } // Fin de la classe
    Y a t il un moyen autre que de modifier le code à chaque fois je pensais à la ligne de commande.
    Voilà j'espère que j'ai été un peu plus clair
    Merci

  7. #7
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Je ne suis pas expert en rmi mais je pense que :
    - il est inutile de modifier noeudClient2, le nom de la variable est local au constructeur.

    -ce serait plutôt "nom2" qu'il faudrait modifier? c'est ça le nom dans le registre. Dans ce cas tu peux prendre la chaine de caractère en paramètre de l'application.

    EDIT : adiGuba copieur, exactement la même réponse

  8. #8
    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
    Je ne connais pas vraiment RMI, mais tu ne devrais pas plutôt changer le "nom2" ? Et dans ce cas là un simple paramètre supplémentaire ferais l'affaire...


    a++

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    je fais le test tout de suite
    A+

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    Ok du coté du nom c'est bon vous êtes tous les deux
    ,J'ai fait la meme chose pour le chemin
    PairInt ref = (PairInt)Naming.lookup("rmi://localhost/noeud2") ;

    je rentre noeud en ligne de commande donc j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     String s = "\"rmi://localhost/" ;
            String adresse = s +noeud+"\"" ;
            PairInt ref = (PairInt)Naming.lookup(adresse) ;
    j'obtiens le message url invalid : "rmi://localhost/noeud2"

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

Discussions similaires

  1. Comment passer le nom de la table en paramètre
    Par eperier dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 30/05/2013, 14h47
  2. Comment obtenir le nom d'un objet en clickant dessus?
    Par Dereck07 dans le forum Delphi
    Réponses: 13
    Dernier message: 08/07/2007, 14h40
  3. [C#] Comment récupérer le nom d'un objet ?
    Par TERRIBLE dans le forum C#
    Réponses: 3
    Dernier message: 29/10/2006, 12h03
  4. [POO] Comment retourner le nom d'un objet
    Par mkael29 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/09/2006, 07h47
  5. [VB.Net 2.0] Comment récuperer le nom d'un objet pour le modifier ?
    Par pti_pierrot dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/07/2006, 14h46

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