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 generic dans une methode


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Par défaut Type generic dans une methode
    Bonjour

    j'aimerais utiliser une méthode qui puisse prendre différents types d’objets et accéder à leurs méthodes :

    j'ai Deux Objets A et B ils ont tous les deux la même propriété public : nom

    j'aimerais dans le code suivant pouvoir changer A en B ou C ... en considérant qu'il ont la même propriété public. j'ai essayé avec une class Abstraite mais je n'y suis pas arrivé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public  ResultListes getListsTypeMob(Cursor<?> cursor){
     
            List<String> referentielNameList = new ArrayList<>();
            ArrayList<A> referentielList = new ArrayList<>();
     
            for (A typeMobilier:cursor) {
     
                referentielNameList.add(typeMobilier.name);
                referentielList.add(typeMobilier);
            }
     
            return new ResultListes(referentielNameList,referentielList);
        }
    Merci

  2. #2
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    choses à faire:
    - créer une interface comme AyantUnNom qu'implanteront A, B, C
    - ensuite avoir une ArrayList<AyantUnNom>

    mais j'ai pas bien compris ce que fait le Cursor

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Par défaut Nitrite Android NosSql Db
    Merci , que je suis idiot désolé j'ai essayé de faire une classe Abstraite .....

    Citation Envoyé par professeur shadoko Voir le message
    mais j'ai pas bien compris ce que fait le Cursor
    Le Cursor vient de "Nitrite" BD NoSql qui tourne sur Android très inintéressant j'ai adopté ..

    Merci encore

  4. #4
    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
    Personnellement, je n'utiliserais pas l'interface mais bien une classe abstraite puisqu'il y a une propriété commune.
    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
    public abstract class MaPartieCommune {
       protected String nom;
     
       public MaPartieCommune(String nom)
       {
          this.nom = nom;
       }
     
       public String getNom()
       {
          return nom;
       }
     
       public void setNom(String nom)
       {
          this.nom = nom;
       }
    }
    Et tes classes A, B et C étendent MaPartieCommune.

    Ensuite, ta boucle for ressemblera à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (MaPartieCommune m : cursor)
    {
       referentielNameList.add(m.getNom());
    }
    (en supposant que cursor soit une liste de A, B ou C...)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Par défaut Jackson me pose un souci avec la calsse abstraite
    Bonjour
    Le problèeme que j'avais avec la classe abstraite , c'est que A et B ou etc .... sont des modèles que j'utilise avec l’excellent Jackson , du coup pour pouvoir désérialiser(annotation Jackson) correctement mes modèles je surchargeais les prop de la classe abstraite directement dans mes modèles, mes après a partir de la classe Mère , je n'arrivais pas a retrouver les prop de chaque classe Fille.

    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
     
    public abstract class MaPartieCommune {
     
        public String nom;
     
     
    }
     
    public A extends MaPartieCommune{
     
    @JsonProperty("etat_mob_libelle")
        public String nom;
     
     
    }
     
    Public void maMethode(MaPartieCommune toto){
     
        // toto etant de type A
     
      String test = toto.nom;
     
    }
    J'avais un retour pour test null, ce qui est normale car dans ce cas il y 2 prop nom une pour la classe Abstraite et l'autre A.nom

  6. #6
    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
    Si l'annotation est spécifique à la classe, effectivement, il y a un problème... à moins que tu puisses la mettre sur le getter, auquel cas, tu as juste à substituer la méthode getNom() dans tes classes.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Retourner un tableau (type list) dans une methode
    Par jeanjean6 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 20/04/2010, 16h30
  2. type void* dans une structure
    Par barbapapaz dans le forum C
    Réponses: 3
    Dernier message: 16/07/2004, 16h11
  3. Champs de type XML dans une base de données
    Par Flocodoupoil dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 07/07/2004, 18h57
  4. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 16h57
  5. [MFC] Passage d'une structure dans une method
    Par KPitN dans le forum MFC
    Réponses: 5
    Dernier message: 18/06/2004, 10h11

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