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 :

Type de retour


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut Type de retour
    Bonjour,

    Je suis entrain d'écrire une classe dont une méthode retournerait un objet du type dont on a passé la classe en argument.

    Je sais qu'une méthode de l'objet EntityManager le fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <T> T find(Class<T> entityClass, Object primaryKey)
    (Source de la signature)

    Mais comment l'implémenter ? Je ne parviens pas à trouver un code qui le fasse.

  2. #2
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    Tu pourrais être un poil plus explicite?
    Pourquoi veux-tu retourner un type que tu passes en argument?
    Si c'est, comme je le suppose, parce que le type passé en argument change (normal ^^), pourquoi ne pas créer une interface ou une classe "mère"?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut
    Ma méthode doit pouvoir rechercher n'importe quel type objet. Je dois juste fournir la classe et l'objet et il doit pouvoir me renvoyer cette objet correctement casté.

    Ca fonctionne si mon retour est Object, mais ça m'obligeait à caster ce retour.

    Mais finalement, j'ai trouvé. J'avais tout essayé, sauf la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public <T> T find(Class<T> clazz, Object pk)
    A la place des T, on peut mettre ce qu'on veut sauf les ? (ce que j'avais testé vu la signature de l'EntityManager affiché par Eclipse).

    Ca permet d'avoir un type de retour paramétrable.

  4. #4
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Petite question curieuse, quels sont le coprs et la signature de ta fonction maintenant?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut
    Cette méthode fait partie d'une classe "service" qui fait le lien avec l'EntityManager. Mon objectif était de réunir dedans toutes les méthodes communes à toutes mes Entity.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	public <T> T find(Class<T> clazz, Object primaryKey) {
    		return em.find(clazz, pk);
    	}
    Avec cette méthode, je peux aussi bien recevoir un object "Mouvement" qu'un objet "Facture", sans aucun cast.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Facture facture = service.find(facture.class,pkFacture);
    Mouvement mvmt = service.find(Mouvement.class,pkMvmt);

  6. #6
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Par défaut
    Bonjour,
    j'aimerai savoir si cela peut se faire dans un contexte simple c'est-à-dire pas dans le contexte des EntityManager

    Merci.

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

Discussions similaires

  1. Perte de type en retour de fonction
    Par Bebel dans le forum Langage
    Réponses: 8
    Dernier message: 22/12/2005, 13h54
  2. Type de retour de la valeur d'une msgbox
    Par Aurèl90 dans le forum Access
    Réponses: 10
    Dernier message: 02/12/2005, 17h45
  3. [Oracle 9.1] Types de retour d'une fonction PL/SQL
    Par ftrifiro dans le forum PL/SQL
    Réponses: 8
    Dernier message: 12/10/2005, 17h54
  4. [type de retour pour un update]
    Par viny dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 21/03/2005, 22h08
  5. [type de retour dans une proc]
    Par viny dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 19/03/2005, 15h35

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