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 :

Cast possible dans les 2 sens?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut Cast possible dans les 2 sens?
    Bonjour,

    Je sèche sur une partie de mon travail. Je dois réaliser 3applications qui communiquent entre elles en réseau. La connection,... se passe bien mais ce sont les échanges qui posent problème.

    Je m'explique: Le client doit se connecter à une banque et pour s'identifier il doit envoyer son login et mot de passe à la banque. Ce que je récupère dans l'interface graphique et je le stocke dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class SimplifiedClient{
      String name, password;
      ...
    }
    Pour l'envoi/réception, j'ai pensé bon de créer une nouvelle classe ObjNetwork:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class ObjNetwork{
      String message;
      Object obj1;
      Object obj2;
      ...
    }
    Elle s'adapterait en fonction du type d'envoi (NewClient, BuyStock, Disconnect,...) avec chaque fois les objets nécessaires.

    Donc dans le cas de la connection, je créée un ObjToSend:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    clientToto = new SimplifiedClient("Titi","12345");
    ObjToSend = new ObjNetwork("NewClient", (Object) clientToto);
    J'envoie et puis dans la banque je reçois, l'objet ObjNetwork que je traite comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    clientToto = (SimplifiedClient)objToReceive.getObj1();
    System.out.println(clientToto.getName()+" est connecté");
    Les méthodes existent bien,... mais il n'arrive pas à m'afficher le nom de clientToto. J'ai l'impression que les casts dans les deux sens font que ça foire. (SimplifiedClient -> Object -> SimplifiedClient).

    Dans la banque, je n'utilise pas de constructeur (étant donné que je caste). Faudrait-il en créé un, si oui comment?

    Autrement comment pourrais-je faire pour transiter plusieurs variables d'un coup sans pour autant créer des nouvelles classes pour chaque type de communication?

    Merci par avance pour votre aide.

  2. #2
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Salut,

    Pourquoi ne pas t'inspirer de certains protocoles comme FTP ?
    Tu crées une "norme" dans laquelle tu pourras envoyer tes informations :

    Login, password, disconnect, etc..., tout peut être géré via du texte plutot que via des objets non (ce qui simplifie les envois)?

    Fred

  3. #3
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    Dans mes objets, il n'y aura pas que des strings mais aussi des InetAdress, int, arraylist,...

    Le plus gros du code avec ces objets est déjà écrit. Le fait de devoir réécrire en utilisant que des strings compliquerait le tout. J'ai pris la commande la plus simple pour expliquer mon problème mais que je vais devoir envoyer un arraylist, ce ne sera pas possible.

    Avant de penser à tout réécrire avec des strings, j'aimerai savoir s'il n'y a pas moyen de le faire avec des objets. Ce serait plus simple pour moi.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    C'est peut-être un peu bête mais tu passes bien par des ObjectOutputStream ?

  5. #5
    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
    Billets dans le blog
    1
    Par défaut
    Tu utilises les Socket ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    Ouaip, j'utilise bien les Sockets, ServerSockets, ObjectOutputStream,...

    Les classes sont bien sérialisées,... Juste la dernière étape qui coince donc le cast de l'objet vers SimplifiedClient.

Discussions similaires

  1. [Oracle 8i] Jointure externe dans les deux sens
    Par Drizzt [Drone38] dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/09/2006, 15h10
  2. [XSL~FO][FOP] variables possibles dans les attributs de tags ?
    Par lebechen dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 29/06/2006, 09h17
  3. [SQL] Jointure externe dans "les 2 sens"
    Par Bounty Killer dans le forum Oracle
    Réponses: 3
    Dernier message: 04/05/2006, 10h56
  4. Double HashMap (Parcours dans les deux sens)
    Par Graffity dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/02/2006, 11h02
  5. Association navigables dans les deux sens
    Par DarkNagash dans le forum Diagrammes de Classes
    Réponses: 4
    Dernier message: 13/07/2005, 15h11

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