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 :

Spécifier un type Dynamiquement ?


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
    Septembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 41
    Par défaut Spécifier un type Dynamiquement ?
    Bonjour à tous,

    Mon postulat de départ est de généraliser un maximum un ensemble de méthodes afin d'avoir une réutilisabilitée maximum.

    Pour ce faire, j'aimerai être capable de spécifier un Type Dynamiquement.

    Par exemple pour une boucle FOR, déterminer le type de l'élément itératif en fonction du type de la liste qui lui sera définit.

    D'ailleurs, si des personnes se sont déjà aventuré sur cette voie leur retour tant au point de vue sécurité que faisabilité sont les bienvenues.

    Merci et à bientot.

    PinkWyzard

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    C'est typiquement ce que font les Generics... non ?

    a++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 41
    Par défaut
    Pas vraiment, les Generics ne me permettront que de typé tardivement ma liste.

    Dans mon cas, les listes récupérées par la méthode pourront avoir des types différents n'ayant aucun point commun hormis une propriété. Donc, (sauf erreur d'utilisation de ma part) impossibilité d'utiliser une wildcard ou un extends.

    Mais j'étais parti sur cette idée aussi

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Alors donnes un exemple plus précis de ce que tu veux faire...

    a++

  5. #5
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Trop de généricité tue la généricité.

    Enfin bref en java il y a instanceof ou getClass(), donc quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for (Object o : mesObjets)
    {
     if (o instanceof truc)
      ... do that...
     else if (o.getClass().getName().equals(System.getProperty("gifffftane.copirit.super.generiqueProperty")
     ... do this...
    }
    Il y a aussi le modèle du visiteur, mais il est rare que je le trouvasse pratique. Astucieux, oui, pratique, non.

    Et puis aussi l'idée de créer une classe de collections qui fasse le for sur une interface par une méthode et qu'on redéfini à plaisir (si on peut dire).

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Par défaut
    salut,

    Je ne sais pas si ça existe déjà

    Mais je pense que tu vas devoir passer par l'api de reflexivité ...
    Tu vas pas couper à te coder ton propre analyseur pour déterminer l'union des types qui composent ta liste.

    Dans un deuxième temps tu vas devoir te coder tes propres procédures for, while ...

    Et le tour est joué

    Par contre à part pour le défi technique ... je pense que si tu en arrive là c'est qu'il existe peut être un soucis de conception.

  7. #7
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Citation Envoyé par Pinkwyzard Voir le message
    Pas vraiment, les Generics ne me permettront que de typé tardivement ma liste.

    Dans mon cas, les listes récupérées par la méthode pourront avoir des types différents n'ayant aucun point commun hormis une propriété. Donc, (sauf erreur d'utilisation de ma part) impossibilité d'utiliser une wildcard ou un extends.

    Mais j'étais parti sur cette idée aussi
    Justement, pour moi, l'intérêt des generics, c'est que les types n'ont aucun point commun (sauf de dérivé d'Object bien entendu)
    Si les types ont un point commun (une classe abstraite par exemple), je préfère l'utiliser car comme il a été dit, les générics sont à utiliser avec parcimonie.

    Ceci dit, puisqu'avec les generics, tu peux avoir n'importe quel type sans point commun; si tu ne veux que les types qui ont ta propriété, tu devrais peut être créer une interface avec un getter sur ta propriété par exemple.

Discussions similaires

  1. [VB6] Spécifier plusieurs types de fichiers avec FileSearch
    Par yaya54 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 31/01/2008, 15h59
  2. [JSP] - Spécifier un type d'upload
    Par jcachico dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/12/2006, 16h53
  3. Réponses: 12
    Dernier message: 23/09/2006, 12h12
  4. Réponses: 1
    Dernier message: 05/12/2005, 23h24
  5. Réponses: 10
    Dernier message: 27/04/2005, 11h26

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