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 :

Genéricité en Java


Sujet :

avec Java

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut Genéricité en Java
    Bonjour,
    Nouveauté de Java 5 et j essaie de comprendre le fonctionnement, pourriez vous me dire si c est vraiment utiliser et pourquoi et dans quel but? par ex dans des gros projets...a t -on vraiment besoin d utiliser des classes génériques?
    merci d avance.

  2. #2
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Bonjour,
    je n'ai jamais défini de classe générique moi-même, mais j'utilise pas mal les collections, et je peux attester que c'est bien pratique:
    On définie une seule fois le type de la collection, puis ensuite il n'y a plus rien à caster.

    Avantages:
    - Code plus facile à lire: par exemple si on a une collection en entrée d'un service on sait ce qu'il y a dedans
    - Code plus strict: on ne mélange pas la torchons et les serviettes, on s'oblige donc à être plus rigoureux
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  3. #3
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Bonjour,

    Pour compléter la réponse de Jidéfix, c'est effectivement bien utilisé pour toutes les collections de java.

    Je n'ai pour ma part pas écrit 50 classes génériques mais une qui revient souvent dans mes projets, c'est une classe permettant de manipuler plus facilement les Beans DAO Hibernate. Cette classe contient un ensemble complet de fonctions s'adaptant dans tous les cas (suppression, recherche par id...) et donc la classe générique est utilisée pour chaque bean associé à une table de ma base.

    Ceci permet d'éviter de dupliquer du code commun d'une classe à une autre, tout est disponible dans une unique classe et dans la logique même des choses, on aura un comportement semblable pour toutes les classes venant typer la classe générique. Ceci est donc plus facilement maintenable. On sépare immédiatement la partie commune des éventuelles parties spécifiques.

  4. #4
    Membre habitué Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 171
    Points
    171
    Par défaut
    Moi non plus je n'ai jamais définit de classe générique moi-même mais pour les collections c'est très utile.
    J'utilise beaucoup l'objet ArrayList dans tout ce que je code, et la généricité permet de simplifier le code un maximum en supprimer les casts... De plus, moi ça me permet de bien cerner quelle List prend tel objet et quelle autre List prend un autre objet, c'est très clair dans la déclaration
    Après peut être que d'autres développeurs les définissent eux-mêmes je ne sais pas

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut waouhhh
    merci pour ces infos..
    Mais quel est le rapport entre la généricité et les collections en Java?
    désolé novice en la matière...

  6. #6
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut ex
    Ou je pourrai trouver un exemple de Collection svp?

  7. #7
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Si tu vas dans la doc java, tu verras par exemple pour les ArrayList quelles sont implémentées ainsi:
    java.util.ArrayList<E>

    La méthode add(E e) a en argument E (correspondant à une classe quelconque)

    Ceci sera spécifié alors au moment où tu voudras les utiliser. Un exemple simple (qui n'a pas forcement de sens mais bon) avec de l'héritage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class Animal {
    }
    public class Chien extends Animal {
    }
    public class Caniche extends Chien {
    }
    public class Chat extends Animal {
    }
    Tu pourras alors faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        public static void main(String[] args) {
            List<Animal> listAnimal = new ArrayList<Animal>();
            List<Chien> listChien = new ArrayList<Chien>();
            listAnimal.add(new Animal());
            listAnimal.add(new Chien());
            listAnimal.add(new Chat());
     
            listChien.add(new Chien());
            listChien.add(new Caniche());
    }
    Tu ne pourras pas faire ceci par contre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //The method add(Chien) in the type List<Chien> is not applicable for the arguments (Animal)
    listChien.add(new Animal());

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

Discussions similaires

  1. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  2. Envoi de Datagrames par IP en JAVA
    Par the java lover dans le forum Développement
    Réponses: 2
    Dernier message: 14/08/2002, 11h44
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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