Précédent   Forum du club des développeurs et IT Pro > Java > Communauté Java > Débats

Débats Les débats et sondages sur le langage et les technologies Java

Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Affichage des résultats du sondage: Êtes-vous pour ou contre cette proposition ?
Pour 404 85,77%
Contre 67 14,23%
Votants: 471. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse
 
Outils de la discussion
Vieux 16/12/2007, 20h26   #1
vbrabant
Expert Confirmé Sénior
 
Inscription : mai 2003
Messages : 3 293
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 3 293
Points : 7 890
Points : 7 890
Par défaut JDK 7: Proposition 4 : possibilité d'utiliser les String dans les switch case -> Intégrée

Aujourd'hui :

Code :
1
2
3
4
5
6
7
8
9
10
 
static boolean booleanFromString(String s) {
    if (s.equals("true")) {
        return true;
    } else if (s.equals("false")) {
        return false;
    } else {
        throw new IllegalArgumentException(s);
    }
}
Demain :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
static boolean booleanFromString(String s) {
    switch(s) {
      case "true":
        return true;
      case "false":
        return false;
      default:
        throw new IllegalArgumentException(s);
    }
}
__________________
Vincent Brabant

Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.
vbrabant est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/12/2007, 02h00   #2
gronono
Membre éprouvé
 
Avatar de gronono
 
Inscription : novembre 2003
Messages : 452
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : novembre 2003
Messages : 452
Points : 408
Points : 408
Envoyer un message via MSN à gronono
Bonjour,

Voila une nouveauté qui serait vraiment utile.

Je suis à 100% pour.

Fini les if, else if, if à rallonge. Les cases apportent beaucoup de clarté au code. Donc il est + maintenable.

A+
Gronono
gronono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 02h04   #3
yann2
Membre Expert
 
Avatar de yann2
 
Homme
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 797
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Hauts de Seine (Île de France)

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

Informations forums :
Inscription : mai 2004
Messages : 797
Points : 1 279
Points : 1 279
Bonsoir

J'ai voté pour mais j'ai quand même une petite question. Est ce que cette fonctionnalité inclue le fait de pouvoir comparer les chaines avec l'opérateur == en toute tranquillité ?

Merci

[edit]
du coup ça me fait penser à une autre fonctionnalité qui peut être cool:
utiliser les opérateurs <, >, <=, >= (pas le == évidemment) sur des objets de type Comparable appelle automatiquement la méthode compareTo... je suis trop gourmand ? Il faudrait voir si cette question n'est pas mieux dans la proposition 3.
[/edit]

Yann
__________________
duck and cover
yann2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 09h12   #4
Napalm51
Membre confirmé
 
Inscription : septembre 2007
Messages : 282
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 282
Points : 282
Points : 282
Pour à 200%, j'ai toujours trouvé que le switch sur String était un manque dans de nombreux langages.
Napalm51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 09h24   #5
metalpetsFR
Membre du Club
 
Inscription : août 2004
Messages : 171
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 171
Points : 62
Points : 62
J'ai voté pour, mais finalement apres reflexion cela ne serait plus cohérent par rapport a l'opérateur == comme disait "yann2".
Cela reviendrais a dire que le type String est un type primitif.

Plutot contre en faite (mince je lui premier)
metalpetsFR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 09h56   #6
adiGuba
Expert Confirmé Sénior
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 665
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

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

Informations forums :
Inscription : avril 2002
Messages : 12 665
Points : 22 465
Points : 22 465
Citation:
Envoyé par metalpetsFR Voir le message
Cela reviendrais a dire que le type String est un type primitif.
String est quand même un type bien particulier

a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java Présentation de Java SE 7 (commentaires)
adiGuba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h04   #7
zulot
Membre éclairé
 
Inscription : décembre 2004
Messages : 662
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 662
Points : 319
Points : 319
Je ne vois pas en quoi le case changerais le s.equals(string) !!!

En tout cas je suis pour à 100%, je trouve que c'est un manque dans certain cas.
__________________
Pour me faire grandir
zulot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h07   #8
n!co
Membre émérite
 
Avatar de n!co
 
Inscription : février 2004
Messages : 831
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : février 2004
Messages : 831
Points : 845
Points : 845
Moi je ne suis pas pour !

C'est pratique quand tu fais du php, mais en java ca fait grado.
Vu que les string seront de toute facon en dur dans les cases, il est plus préférable de porter l'utilisation des Enumérations dans ce cas.
__________________
Netbeans account : nico@share.java.net
Merci de ne pas poser de questions techniques par MP
n!co est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h54   #9
bobuse
Membre confirmé
 
Avatar de bobuse
 
Inscription : janvier 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 229
Points : 217
Points : 217
Je trouve ça effectivement joli et séduisant. mais comme dit n!co, un switch de String reste de toutes façons crado.
Et vu qu'il a beaucoup de propositions de sucre syntaxique, je ne veux pas qu'il y en ait trop, au risque de compliquer le langage.
bobuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h59   #10
romaintaz
Rédacteur/Modérateur
 
Avatar de romaintaz
 
Homme Romain Linsolas
Java craftsman
Inscription : juillet 2005
Messages : 3 584
Détails du profil
Informations personnelles :
Nom : Homme Romain Linsolas
Âge : 35
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Java craftsman
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 3 584
Points : 6 781
Points : 6 781
Je suis pour, je trouve que ça peut simplifier le code, sans mettre trop de complexité...

Quant au fait de pouvoir utiliser le switch en utilisant le ==, je ne sais pas trop comment cela se matérialiserait du point de vue écriture du code java...
A ce niveau là, aussi pourquoi ne pas proposer une comparaison des Strings en ignorant la casse (en gros, que l'on puisse utiliser le equalsIgnoreCase("") au lieu de equals("") ) ?
__________________
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
romaintaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h59   #11
OButterlin
Modérateur
 
Avatar de OButterlin
 
Homme
Inscription : novembre 2006
Messages : 5 087
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 5 087
Points : 5 829
Points : 5 829
Je ne dirais qu'une chose : ENFIN !
OButterlin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h01   #12
romaintaz
Rédacteur/Modérateur
 
Avatar de romaintaz
 
Homme Romain Linsolas
Java craftsman
Inscription : juillet 2005
Messages : 3 584
Détails du profil
Informations personnelles :
Nom : Homme Romain Linsolas
Âge : 35
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Java craftsman
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 3 584
Points : 6 781
Points : 6 781
D'accord et pas d'accord avec n!co.
Je ne vois pas trop pourquoi un switch sur les String serait plus crados qu'un enchaînement (lourd à digérer) de if - else...
Mais je suis super pour qu'on étende aussi les switches aux Enumérations !

J'aimerais bien pouvoir faire

Code :
1
2
3
4
5
6
7
8
 
switch (saison) {
    case SUMMER:
        ...
    case WINTER:
        ...
    ...
}
__________________
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
romaintaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h07   #13
elitost
Rédacteur
 
Avatar de elitost
 
Homme Eric REBOISSON
Consultant informatique
Inscription : septembre 2003
Messages : 2 031
Détails du profil
Informations personnelles :
Nom : Homme Eric REBOISSON
Âge : 35
Localisation : France, Moselle (Lorraine)

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

Informations forums :
Inscription : septembre 2003
Messages : 2 031
Points : 6 879
Points : 6 879
Envoyer un message via ICQ à elitost Envoyer un message via AIM à elitost Envoyer un message via MSN à elitost Envoyer un message via Yahoo à elitost Envoyer un message via Skype™ à elitost
+1
Ce serait bien pratique.
elitost est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h22   #14
bassim
Membre expérimenté
 
Avatar de bassim
 
Homme
Ingénieur Réseaux
Inscription : février 2005
Messages : 647
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur Réseaux
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2005
Messages : 647
Points : 592
Points : 592
Envoyer un message via MSN à bassim Envoyer un message via Yahoo à bassim
Citation:
Envoyé par romaintaz Voir le message
D'accord et pas d'accord avec n!co.
Je ne vois pas trop pourquoi un switch sur les String serait plus crados qu'un enchaînement (lourd à digérer) de if - else...
Mais je suis super pour qu'on étende aussi les switches aux Enumérations !

J'aimerais bien pouvoir faire

Code :
1
2
3
4
5
6
7
8
 
switch (saison) {
    case SUMMER:
        ...
    case WINTER:
        ...
    ...
}
Ca c'est deja faisable enums

c'est vrai qu'un switch avec des Strings peut être fait avec des enums !
__________________
Club des développeurs algériens

Where is my mind
bassim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h46   #15
bobuse
Membre confirmé
 
Avatar de bobuse
 
Inscription : janvier 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 229
Points : 217
Points : 217
Citation:
Envoyé par romaintaz Voir le message
D'accord et pas d'accord avec n!co.
Je ne vois pas trop pourquoi un switch sur les String serait plus crados qu'un enchaînement (lourd à digérer) de if - else...
En fait, si n!co pense bien comme moi, ce n'est pas que le switch serait plus crado que des if/then/else, mais que c'est le fait d'utiliser des String pour conditionner des actions qui est crado. Il vaut mieux effectivement utiliser des enums
bobuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h25   #16
coyote999
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 68
Détails du profil
Informations personnelles :
Âge : 30
Localisation : Belgique

Informations forums :
Inscription : janvier 2007
Messages : 68
Points : 35
Points : 35
Envoyer un message via MSN à coyote999
Par défaut Pour. Mais il faut creuser plus loin...

Je suis pour mais je serais d'avis de ne pas seulement se limiter au type String. Pourquoi ne pas aller plus loin et permettre un switch qui pourrait comparer des objets identiques.

On pourrait comparer des String, des BigDecimals mais également des classes que nous avons développé nous-mêmes.
coyote999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h45   #17
Hikage
Rédacteur
 
Avatar de Hikage
 
Inscription : mai 2004
Messages : 1 191
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mai 2004
Messages : 1 191
Points : 5 275
Points : 5 275
Envoyer un message via Skype™ à Hikage
Pour, ca permet de faire des switch a la place de if else à la chaine.
__________________
Hikage
SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
[Personal Web] [CV]

F.A.Q Spring Framework - Participez !
Hikage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 13h23   #18
bulbo
Rédacteur
 
Avatar de bulbo
 
Homme
Consultant informatique
Inscription : février 2004
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : février 2004
Messages : 1 192
Points : 1 905
Points : 1 905
Contre,

Les enums apportent déjà cette possibilité, quand j'ai des constantes String je les déclare toujours en constante java (static final ou enum) ce qui évite les fautes de frappes accidentelles si je dois les utiliser a plusieurs endroits.

Quand au == entre string je vois pas trop ce que ça apporte de toute façon, il faudrait quand même que certains se fassent au fait que Java est objet.
S'il veulent de la surcharge d'opérateurs ils ont qu'a essayer C++, on les reverra vite parmi nous une fois qu'ils auront réalisé l'avantage de la chose et les multiples danger que ça introduit.

Bulbo
__________________
[Java] [NetBeans] [CVS]
La FAQ Java
Merci de ne pas me poser de questions techniques par MP.
!! J'aurais voulu être une conserve !!
bulbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 15h19   #19
bassim
Membre expérimenté
 
Avatar de bassim
 
Homme
Ingénieur Réseaux
Inscription : février 2005
Messages : 647
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur Réseaux
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2005
Messages : 647
Points : 592
Points : 592
Envoyer un message via MSN à bassim Envoyer un message via Yahoo à bassim
J'ai voté pour,
mais si on utilisait les enums, le refactoring serait possible alors qu'avec cette solution très élégante ,non !

Hors sujet: pourquoi on débattrait pas des superpackages
il me semble que cette proposition est plus interressente que toutes les autres
__________________
Club des développeurs algériens

Where is my mind
bassim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 15h24   #20
adiGuba
Expert Confirmé Sénior
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 665
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

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

Informations forums :
Inscription : avril 2002
Messages : 12 665
Points : 22 465
Points : 22 465
Citation:
Envoyé par bassim Voir le message
Hors sujet: pourquoi on débattrait pas des superpackages
il me semble que cette proposition est plus interressente que toutes les autres
Les superpackages sont déjà à un stade avancé et possède déjà leurs JSR... ils devraient donc bien faire partie de Java 7.

Ce n'est pas le cas de ces propositions

a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java Présentation de Java SE 7 (commentaires)
adiGuba est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h18.


 
 
 
 
Partenaires

Hébergement Web