Publicité

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

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

    81 30,11%
  • Contre

    188 69,89%
+ Répondre à la discussion
Page 1 sur 3 123 DernièreDernière
Affichage des résultats 1 à 20 sur 53
  1. #1
    Expert Confirmé Sénior

    Inscrit en
    mai 2003
    Messages
    3 284
    Détails du profil
    Informations forums :
    Inscription : mai 2003
    Messages : 3 284
    Points : 9 776
    Points
    9 776

    Par défaut JDK 7: Proposition 3 : Comparer les énumérations

    Aujourd'hui :

    Code java :
    1
    2
    3
    4
    5
    enum Size { SMALL, MEDIUM, LARGE }
    
    if (mySize.compareTo(yourSize) >= 0)
        System.out.println(“You can wear my pants.”);

    Demain :

    Code java :
    1
    2
    3
    4
    5
    enum Size { SMALL, MEDIUM, LARGE }
    
    if (mySize > yourSize)
        System.out.println(“You can wear my pants.”);
    Vincent Brabant

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

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

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

    Informations forums :
    Inscription : mai 2004
    Messages : 806
    Points : 1 180
    Points
    1 180

    Par défaut

    Bonsoir

    Je suis pour mais les cas d'utilisation semblent très limités, non ?

    Qui irait comparer la classique énumération saison {AUTUMN, SPRING, WINTER, SUMMER} ?

    yann

  3. #3
    Membre éclairé Avatar de gronono
    Inscrit en
    novembre 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : novembre 2003
    Messages : 452
    Points : 396
    Points
    396

    Par défaut

    Bonjour,

    Je suis contre. Qu'est ce qui définit la notion d'ordre pour une énumération ?

    Par exemple si j'ai une énumération des modes de paiement:
    ESPECES, CHEQUES, CB.

    Pourquoi ESPECES < CHEQUES me donnerai true (ou false) ?????

    Si on veut un opérateur de comparaison, il faut l'implémenter et non se baser sur la déclaration.

    A+
    Gronono

  4. #4
    Membre confirmé
    Inscrit en
    septembre 2007
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : septembre 2007
    Messages : 282
    Points : 282
    Points
    282

    Par défaut

    Contre, pour les même raisons que gronono.

  5. #5
    Membre émérite
    Avatar de n!co
    Inscrit en
    février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : février 2004
    Messages : 831
    Points : 823
    Points
    823

    Par défaut

    Cela n'invente rien non plus !
    http://java.sun.com/j2se/1.5.0/docs/...ml#compareTo(E)

    La question serait plus de savoir si cet opérateur se basera sur la méthode compareTo() ?
    Netbeans account : nico@share.java.net
    Merci de ne pas poser de questions techniques par MP

  6. #6
    Membre actif Avatar de austin P.
    Inscrit en
    juin 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : juin 2004
    Messages : 181
    Points : 178
    Points
    178

    Par défaut

    plutot contre

    à mon sens la methode compareTo() à plus de sens que l'operateur > ou <

    comme le dit gronono la sémantique est plus importante
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  7. #7
    Membre éclairé Avatar de gronono
    Inscrit en
    novembre 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : novembre 2003
    Messages : 452
    Points : 396
    Points
    396

    Par défaut

    Citation Envoyé par n!co Voir le message
    Cela n'invente rien non plus !
    http://java.sun.com/j2se/1.5.0/docs/...ml#compareTo(E)

    La question serait plus de savoir si cet opérateur se basera sur la méthode compareTo() ?
    Contrairement à la méthode compareTo, l'opérateur < n'a pas de javadoc. Et donc ne précise pas que l'ordre est l'ordre des déclarations.

    Je pense que ce n'est pas une bonne chose qu'une énumération implémente Comparable. on devrait pouvoir le faire à la demande comme pour les autres classes.

    D'ailleurs à partir de maintenant, je vais systèmatiquement rédefinir cette méthode pour renvoyer une UnsupportedOperationException.

    A+
    Gronono

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    5 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 5 545
    Points : 6 172
    Points
    6 172

    Par défaut

    Ben, j'aime pas, je trouve que ça ne facilite pas la lisibilité du code.
    Je préfère
    Code :
    1
    2
     
    if ( mySize > size.LARGE )
    Dans tous les cas, je ne comprends pas l'exemple... quel lien entre mySize, yourSize et Size ?
    D'un autre côté, je n'ai jamais utilisé d'enum, ça vient certainement de là...

  9. #9
    Membre expérimenté
    Inscrit en
    juillet 2007
    Messages
    767
    Détails du profil
    Informations forums :
    Inscription : juillet 2007
    Messages : 767
    Points : 541
    Points
    541

    Par défaut

    J'ai voté pour, mais en y réfléchissant à deux fois, je suis plutôt contre pour les même raisons que gronono.

  10. #10
    Membre émérite Avatar de Jester
    Inscrit en
    septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 813
    Points : 863
    Points
    863

    Par défaut

    J'ai voté contre, la sémantique de > n'est pas valide pour toutes les enum.

    Après je serais bien pour la surcharge d'opérateur mais c'est un autre débat.

  11. #11
    Rédacteur/Modérateur
    Avatar de le y@m's
    Homme Profil pro Yann D'Isanto
    Ingénieur développement logiciels
    Inscrit en
    février 2005
    Messages
    2 640
    Détails du profil
    Informations personnelles :
    Nom : Homme Yann D'Isanto
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : février 2005
    Messages : 2 640
    Points : 5 496
    Points
    5 496

    Par défaut

    Je suis contre pour les mêmes raisons que celles énoncées précédemment.

    Cependant, je serais d'accord si cette fonctionnalité était optionnelle.
    Pouvoir comparer des enums est intéressant, mais cela dépend de leur implémentation et il me semble donc primordiale que ce soit le développeur qui spécifie explicitement si une enum est comparable (via un mot clé ou un implements Comparable ou autre).
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  12. #12
    Rédacteur
    Avatar de elitost
    Homme Profil pro Eric REBOISSON
    Consultant informatique
    Inscrit en
    septembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Nom : Homme Eric REBOISSON
    Âge : 36
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2003
    Messages : 1 986
    Points : 6 245
    Points
    6 245

    Par défaut

    Une lisibilité bizarre pour cette option.

  13. #13
    En attente de confirmation mail

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

    Informations forums :
    Inscription : juillet 2006
    Messages : 766
    Points : 984
    Points
    984

    Par défaut

    Citation Envoyé par gronono Voir le message
    Contrairement à la méthode compareTo, l'opérateur < n'a pas de javadoc.
    +1
    Plus j'avance dans les propositions, plus je suis épaté par les contres-arguments soulevés. Ca sent le vécu quand même

  14. #14
    Membre Expert Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : mai 2004
    Messages : 806
    Points : 1 180
    Points
    1 180

    Par défaut

    bonsoir,

    La structure de contrôle foreach n'a pas de Javadoc et on est bien content de pouvoir l'utiliser (pourtant la classe Iterable et la méthode iterator ont une javadoc). Le tout est de connaitre le mécanisme qu'il y a derrière !

    Et la javadoc de compareTo de la classe Enum est claire !

    [edit]
    et en fait j'aimerai bien que cette fonctionnalité (sauf pour le == ) soit étendue à toutes les classes qui implémentent Comparable !! M'enfin je lance ça comme ça sans en avoir étudier les tenants et aboutissants On pourrait, par exemple comparer des objets de type date le plus naturellement du monde.
    [/edit]

    yann

  15. #15
    Membre éclairé Avatar de gronono
    Inscrit en
    novembre 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : novembre 2003
    Messages : 452
    Points : 396
    Points
    396

    Par défaut

    En fait, il y a deux sujets différents dans cette proposition.

    Si l'opérateur < revient à faire .compareTo alors je suis plutot pour. On pourrait ainsi comparé deux objets et je pense que c'est même plus lisible.
    Par exemple si j'ai un objet Personne qui implémente Comparable alors je peux faire :
    Code :
    1
    2
    3
    4
    5
    6
     
    Personne p1 = ...
    Person p2 = ..
    if (p1 < p2) {
     // Faire qqchose
    }
    Serait équivalent au code :
    Code :
    1
    2
    3
    4
    5
    6
     
    Personne p1 = ...
    Person p2 = ..
    if (p1.compareTo(p2)) {
     // Faire qqchose
    }
    Le second sujet est que les énumérations implémentent Comparable. Sur ce point je suis contre pour les raisons evoquées ci-dessus.

    A+
    Gronono

  16. #16
    Expert Confirmé
    Avatar de natha
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : janvier 2006
    Messages : 2 346
    Points : 2 735
    Points
    2 735

    Par défaut

    Ca risque de devenir ambigüe. Je suis contre également.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  17. #17
    Membre chevronné

    Profil pro
    Inscrit en
    juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : juillet 2002
    Messages : 346
    Points : 666
    Points
    666

    Par défaut

    Pour mais à condition que ce soit basé sur compareTo comme on le fait déjà pour le tri automatique des Collection.

    Ça reviendrait à ajouter un compareTo dans la class Object (comme le equals) qui serait par défaut une comparaison du hashCode, on aurrait ensuite les comparateurs >, <, <=, >= qui se baserait sur la valeur retourné par le compareTo.

    En fait, c'est quand même bien compliqué donc j'hésite ...

  18. #18
    Membre habitué Avatar de ludosoft
    Homme Profil pro Ludovic Martin
    Chef de projet technique
    Inscrit en
    juillet 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Nom : Homme Ludovic Martin
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juillet 2002
    Messages : 96
    Points : 106
    Points
    106

    Par défaut

    Pour moi ça craint aussi. Faut pas vouloir faire avec un type énuméré ce qu'ont ferait avec un entier.

    Code :
    1
    2
    enum Humain { HOMME, FEMME, BB }
    HOMME+FEMME=BB ?

  19. #19
    Expert Confirmé Sénior

    Inscrit en
    décembre 2003
    Messages
    2 682
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 2 682
    Points : 5 600
    Points
    5 600

    Par défaut

    Contre. En fait, c'est le retour des méthodes operator du C++, avec leur cortège de défauts. Le principal : la yntaxe créé la confusion, et on a tendance à y mettre un contenu implicite qui n'est peut-être pas le contenu de l'operateur. Les bénéfices étant par ailleurs plutôt faibles (écriture un peu plus compacte), je vote contre sans hésiter.
    Les brevets ? Le type qui a inventé l'eau chaude doit être grave blindé de thunes !

  20. #20
    Membre Expert
    Avatar de xavlours
    Inscrit en
    février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : février 2004
    Messages : 1 832
    Points : 2 153
    Points
    2 153

    Par défaut

    Pour moi c'est une forme de surcharge des opérateurs, qui a été refusée dès le début de java, donc pourquoi s'y mettre maintenant ? Les interfaces de Comparator et Comparable sont utiles et bien faites, et trouve ça plus modulaire : on choisit nous même le Comparator pour trier une liste, par exemple. Cette proposition incite les développeurs à fournir des classes qui se basent directement sur l'opérateur.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •