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

Affichage des résultats du sondage: Etes vous pour ou contre cette proposition ?

Votants
368. Vous ne pouvez pas participer à ce sondage.
  • Pour

    280 76,09%
  • Contre

    88 23,91%
Langage Java Discussion :

JDK 7: Proposition 1 : Constructeurs simplifiés pour la généricité -> Intégrée [Débat]


Sujet :

Langage Java

  1. #1
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    Par défaut JDK 7: Proposition 1 : Constructeurs simplifiés pour la généricité -> Intégrée
    27/08/2009 :
    C'est fait : cette proposition a été intégré dans Java 7 sous le nom de "diamond syntax". Plus d'information sur http://blog.developpez.com/adiguba/p...iamond-syntax/

    16/12/2007 :

    Neal Gafter et Joshuah Bloch ont proposé lors d'un BOF qui s'est tenu à Javapolis 2007 certains changements au niveau du langage Java qui pourraient être introduits dans le JDK7. Le but ici est de recueillir vos votes et commentaires, de les consolider, et de les remonter à Neal Gafter et Joshuah Bloch.
    D'autres JUG répartis un peu partout dans le monde feront de même. Ce qui permettra d'avoir le maximum de retour de la communauté Java.

    Ne manquez pas cette chance unique de pouvoir donner votre avis concernant le futur de Java.

    Aujourd'hui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Map<String, List<String>> 
      anagrams = new HashMap<String, List<String>>();
    Demain :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Map<String, List<String>> 
      anagrams = new HashMap<>();
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  2. #2
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Bonsoir

    Je suis contre, mon IDE me fait la complétion automatiquement et si l'initialisation ne se fait pas en même temps que la déclaration, l'information portée par <String, List<String>> est pratique.

    yann

  3. #3
    Membre actif Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    Je suis pour, en autant que l'initialisation actuelle reste disponible pour la même raison qu'a invoqué yann2.

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Bonjour,

    J'ai voté pour. Car si j'ai déjà déclaré le type de ma généricité, je ne vois pour quelle raison, je devrais le répéter pour l'instanciation.
    Bien le bonjour chez vous
    Jowo

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Points : 327
    Points
    327
    Par défaut
    Pour, mais en gardant à l'esprit la première remarque, à savoir que les 2 versions devraient être possible.

  6. #6
    Membre éprouvé
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Points : 936
    Points
    936
    Par défaut
    Voté pour,
    Ca alège le code sans pour autant perdre vraiment de l'information à mes yeux.
    D'autant que si je ne dis pas de bétise, seul l'information sur l'interface est réellement utile dans l'interprétation des générics par le compilateur.
    Netbeans account : nico@share.java.net
    Merci de ne pas poser de questions techniques par MP

  7. #7
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Oui pour moi : cela permet d'éviter une répétition inutile...

    Bien sûr quoi qu'il arrive la première syntaxe sera toujours valide (rien que pour assurer la compatibilité ascendante).

    a++

  8. #8
    Membre actif
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Points : 278
    Points
    278
    Par défaut
    Citation Envoyé par jibbi Voir le message
    Je suis pour, en autant que l'initialisation actuelle reste disponible pour la même raison qu'a invoqué yann2.
    tout à fait pareil

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    pareil, même si ça n'est pas vital...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par yann2 Voir le message
    Bonsoir

    Je suis contre, mon IDE me fait la complétion automatiquement et si l'initialisation ne se fait pas en même temps que la déclaration, l'information portée par <String, List<String>> est pratique.

    yann
    Si tu as un IDE, celui ci t'informe aussi automatiquement si tu essayes de mettre des types incompatibles dans ton ArrayList.

    J'ai voté pour, on ne perd pas d'information et ce n'est pas un sucre syntaxique qui a un cout a l'exécution (comme certains introduit par le passé) il évite juste la répétition d'une info inutile et qui n'était probablement pas utilisée par le compilo qui plus est..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  11. #11
    Invité
    Invité(e)
    Par défaut
    D'un premier abord, ça semble utile, mais ça ne favorise pas l'utilisation d'interfaces...

  12. #12
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    pour, tant que l'autre ecriture reste possible pour certain cas.
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  13. #13
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par eclesia Voir le message
    pour, tant que l'autre ecriture reste possible pour certain cas.
    Même si pour la compatibilité, l'autre écriture est bien nécessaire, je n'arrive pas a voir un cas ou cela aurait un intérêt.

    Tu arriverais a nous filer un exemple ?

    Muscador > Tu pourrais développer ta remarque sur les interfaces, je dois avouer que je suis passé a coté, je ne vois pas trop ce que les interfaces viennent faire la dedans..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  14. #14
    Membre actif
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Points : 278
    Points
    278
    Par défaut
    Citation Envoyé par Muscador Voir le message
    D'un premier abord, ça semble utile, mais ça ne favorise pas l'utilisation d'interfaces...
    Hmmm, tu es sûr ?
    Tu as un exemple ?

  15. #15
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    pour, celà simplifie un peu la notation du typage

    F.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  16. #16
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    Citation Envoyé par bulbo Voir le message
    Même si pour la compatibilité, l'autre écriture est bien nécessaire, je n'arrive pas a voir un cas ou cela aurait un intérêt.

    Tu arriverais a nous filer un exemple ?
    je pensais a ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Map mymap = new HashMap<Context,Layer>();        
    traitement(mymap);
    la définition des classes(<Context,Layer>) ce fait dans la deuxieme partie.
    donc cette ecriture doit rester possible.
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  17. #17
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Pour moi c'est le type déclaré qui est important et non pas le type de la création , donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Map<Context,Layer> mymap = new HashMap();        
    traitement(mymap);
    Cela n'apporte rien de répéter le type lors de la création...

    a++

    [edit] je vois dans plusieurs sujets des remarques demandant à ce que les écritures actuelles restent utilisable : il n'y a aucun risque de suppression à ce niveau car cela impacterait la compatibilité ascendante...

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    Je suis plutôt pour, ça rendrait le code moins verbeux. La redondance n'apporte rien.

  19. #19
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par eclesia Voir le message
    je pensais a ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Map mymap = new HashMap<Context,Layer>();        
    traitement(mymap);
    la définition des classes(<Context,Layer>) ce fait dans la deuxieme partie.
    donc cette ecriture doit rester possible.
    Et tu as un beau warning a la compil car generic utilisé pour initialiser une variable non generic.
    Perso je vire tout les warnings de mes projets quand je peux, et aucun warning ne vient de mon code si j'en laisse c'est que je n'ai pas le choix..
    Ah oui j'oubliais a part le warning lors de l'affectation ton code n'utilisera absolument pas les generics pour checker le type des objets que tu mets dans ta HashMap.

    Par contre si tu déclares ta variable avec les generic et que tu l'initialises avec un constructeur utilisant d'autres generic mais compatible avec ceux de la declaration, seuls ceux de la déclaration seront visibles au reste du programme, donc ceux du constructeur sont vraiment inutile.

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  20. #20
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    J'ai jamais compris à quoi servait cette redondance. Mon compilatuer marche très bien si je fais :
    Vector <Eleve> listeEleves=new Vector();

    Que je mette ou non <Eleve> dans la deuxième partie ne change rien. Est-ce que cela change à la compilation ?

    Il y a même pire. Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Vector <Eleve> listeEleves=new Vector();
    listeEleves.add(prof);
    Alors j'ai une erreur. Par contre si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Vector <Eleve> listeEleve;
        Vector <Professeur> listeProfesseur=new Vector<Professeur>();
        Vector a=new Vector();
        a=listeProfesseur;
        listeEleve=a;
    Je n'ai pas d'erreur de compiltation, mais il y aura une errreur à l'execution. Je n'ai pourtant jamais mis les <> en double pour la listeEleve.

    Bref, je ne vois pas pourquoi on ne se limiterais à Vector <Eleve> listeEleves=new Vector(); sans même rajouter <>

    Je suppose qu'il doit y avoir une raison.

    Si on les supprime complètement, je suis d'accord, mais sinon je suis contre : pour éviter d'avoir deux styles de notations (j'aime pas), et pour bien comprendre que Vector<Eleve> est un typage à part entière, qui n'hérite pas de Vector<Utilisateur>.

Discussions similaires

  1. JDK 7: Proposition 9 : Notation de tableau pour List et Map -> Intégrée
    Par vbrabant dans le forum Collection et Stream
    Réponses: 58
    Dernier message: 03/09/2009, 16h35

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