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 :

Convertion d'une classe en une autre


Sujet :

Langage Java

  1. #1
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut Convertion d'une classe en une autre
    Bonjour,

    Voici mon problème :
    J'ai un projet A avec une classe "House"
    J'ai un projet B avec une classe "House"
    Et un projet C qui récupère des A.House, pour les enregistrer avec le projet B grâce aux objects B.house en gros je voudrais faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    B.house = A.house;
    Mais bien entendu ce n'est pas possible, je dois utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "new ClassConverter().convert"
    Mais la je n'y arrive pas...

    Si quelqu'un aurait une idée ...

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    Si t'as des methodes get et set dans ta classe tu peux faire ta propre fonction clone :

    Par exemple avec des attributs att1 et att2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    B.house.setAtt1(A.house.getAtt1());
    B.house.setAtt2(A.house.getAtt2());

  3. #3
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut
    Je ne veux pas faire ça car :
    - Des outils existe tels que Converter (que je n'arrive pas à utiliser ) pour le faire
    - C'est pas propre
    - Mes classes contiennent d'autres objets tout aussi complexe et un nombre important de membres...

    Je continu mes recherches du coup, merci quand même

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Citation Envoyé par goute Voir le message
    Je ne veux pas faire ça car :
    - Des outils existe tels que Converter (que je n'arrive pas à utiliser ) pour le faire
    Ce ne sont pas des outils pour t'aider à faire ça, ce sont des outils pour standardiser ça. En gros, une fois que tu as écrit la conversion de l'un en l'autre, tu peux l'implémenter sous forme de ClassConverter pour que ce soit réutilisable par tout ce qui sait utiliser un ClassConverter.
    Donc, je le redis, c'est pas un outil pour faire ce que tu demandes. Il faut faire par exemple comme dit au-dessus.

    Citation Envoyé par goute Voir le message
    - C'est pas propre
    C'est le fait même d'avoir besoin de transformer A.House en B.House, qui n'est pas propre.
    On ne peut pas "re-proprer" ça avec des outils. À la limite ça pourrait être plus simple mais pas plus propre.

    Citation Envoyé par goute Voir le message
    - Mes classes contiennent d'autres objets tout aussi complexe et un nombre important de membres...
    cf point précédent.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    je ne sais pas si ca pourrait marcher ou pas, mais t'as deja essayer la serialisation XML ? Tu encore ton objet A avec XmlEncoder et tu le decode avec XMLDecoder.

    Normalement seul el nom de la classe est renseigné dans le fichier XML, donc je ne vois aps en quoi y'aurait un probleme de conversion. Il faut par contre s'assurer que toutes tes classes possèdent les getters et des setters pour chacun des attributs .....

  6. #6
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut
    Ok, donc lsi j'ai bien compris, la solution à envisager est la première proposée par ticroch ?

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Citation Envoyé par goute Voir le message
    Ok, donc lsi j'ai bien compris, la solution à envisager est la première proposée par ticroch ?
    Oui, ou alors de supprimer l'une des deux classes House et adapter l'architecture pour n'utiliser que l'autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 190
    Par défaut
    Question bête:

    n'est pas un cas d'utilisation du pattern Adapter. Faire croire que les A.house sont des B.house?

    Dans ce cas, il n'y a plus besoin de conversion.

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Si, c'est une adaptation possible, si par exemple deux modules indépendants de l'application cherchent à travailler sur des données de même nature mais à la hiérarchie et aux signatures complètement différentes.

    (Mais en principe cet état de fait ne se justifie que si les deux modules viennent de fournisseurs différents qui ne travaillent pas ensemble autour d'un standard.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [VBA] [CLASS] accès à une classe d'une autre base
    Par gsilber dans le forum Contribuez
    Réponses: 5
    Dernier message: 29/02/2016, 13h38
  2. Eval d'une propriété d'une classe dans une classe
    Par bizet dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/10/2008, 10h43
  3. Réponses: 3
    Dernier message: 29/04/2008, 15h14
  4. Réponses: 2
    Dernier message: 26/11/2007, 13h22
  5. Réponses: 2
    Dernier message: 17/04/2007, 18h14

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