|
|||||||
| Débats Les débats et sondages sur le langage et les technologies Java |
|
|
Publicité ' | |||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#1 | ||||||
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2003 Messages : 3 293 ![]() |
Aujourd'hui :
Code :
Code :
En combinant cette proposition avec la proposition 5, il serait possible d'écrire du code de ce style : Code :
__________________
Vincent Brabant Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide. |
||||||
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : septembre 2007 Messages : 282 ![]() |
Pour, je prend l'exemple de la classe GBC servant à utiliser facilement les GridBagConstraint qui utilise ce principe, et c'est tellement plus simple lors de la création d'enchaîner quelques setters
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : avril 2002 Messages : 2 683 ![]() |
Autant le principe me plait, autant je pense qu'il faudrait revoir la syntaxe car la on utilise le "." classique alors que le retour de type void, ca me choque.
|
|
|
00
|
|
|
#4 |
![]() ![]() |
oui oui, sans hésiter une seconde sur le chainage ! c'est tellement plus lisible, ca n'apporte aucune complexité supplementaire dans le langage.
j'avais parlé de ce que ca apporte dans un billet de mon blog de plus, c'est une approche (le chainage) qu'on trouve deja dans certaines api java (java.nio par exemple) : autant le généraliser. le type même de modif que j'aime bien : simple, ca ne n'apporte pas de nouveaux mots clés, comprehensible facilement.
__________________
Blog blog = new MyBlog(); |
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : juin 2004 Messages : 175 ![]() |
pour
j'irai même plus loin c'est beaucoup plus lisible en chainage qu'avec le nom de l'objet repété X fois
__________________
En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks") |
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Tout à fait d'accord aussi !!
Par contre, je ne vois pas de condition explicite. J'imagine que ce chaînage ne s'appliquerait que pour les méthodes qui retournent void. En fait, ça me conforte dans l'idée que ce serait mieux d'utiliser des exceptions qu'un code de retour, comme c'est le cas dans Collection.add(E) par exemple. En effet, le chaînage ne serait pas possible à cause de ce code de retour !! |
|
|
00
|
|
|
#7 | ||||
![]() ![]() |
oui, c'est ca ! les méthodes qui renvoient void renverraient this en fait.
une méthode Code :
Code :
__________________
Blog blog = new MyBlog(); |
||||
|
00
|
|
|
#8 |
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
Ca ne concernerait que les méthodes ne renvoyant rien je présume ???
|
|
|
00
|
|
|
#9 |
|
Membre expérimenté
![]() |
et si la première méthode générait une exception , comment pourrait on la traiter ?
|
|
|
00
|
|
|
#10 | |
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Citation:
Et tu as toujours la possibilité de splitter la chaîne pour un contrôle plus fin. |
|
|
|
00
|
|
|
#11 | |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 661 ![]() |
Citation:
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
|
00
|
|
|
#12 | ||
![]() ![]() Inscription : décembre 2006 Messages : 1 886 ![]() |
Pour.
mais je verrais bien l'ecriture comme ca : Code :
__________________
Systèmes d'Informations Géographiques- Projets : GeoAPI GeotoolKit PuzzleGISPour un monde sans BigBrother IxQuick ni censure RSF |
||
|
|
00
|
|
|
#13 | |||
|
Membre expérimenté
![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#14 | ||||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 661 ![]() |
En général si tu as une exception cela arrête tout le traitement, donc ce serait plutôt :
Code :
Code :
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||||
|
00
|
|
|
#15 |
![]() ![]() Consultant informatique Inscription : février 2004 Messages : 1 192 ![]() |
Contre,
Pour moi c'est du grand n'importe quoi et pourquoi pourrait on chainer les méthodes retournant void (avec un this implicite) et pas les méthodes retournant un type particulier ou du coup pas de this mais le type de retour. Pour lire (et comprendre) un chainage de ce type en mixte (avec et sans void) il faudrait connaitre par cœur la déclaration de chacune des méthodes .. personnellement j'en suis incapable et même avec un IDE ça peut être pénible a voir. En général si j'ai ce genre d'enchainement a faire il y a probablement une raison et peut-être aussi le besoin de le faire a différents endroits du coup je mets ça dans une méthode et zou Bulbo
__________________
[Java] [NetBeans] [CVS] La FAQ Java Merci de ne pas me poser de questions techniques par MP. !! J'aurais voulu être une conserve !! |
|
|
00
|
|
|
#16 | |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 661 ![]() |
Citation:
Du coup la proposition 10 semblerait plus clair sur ce point précis concernant le chainage a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
|
00
|
|
|
#17 |
|
Membre expérimenté
![]() Inscription : juillet 2007 Messages : 729 ![]() |
Je suis plutôt contre. C'est vrai que ça réduirait considérablement le code, mais ce serait surtout une source de confusion selon moi. J'ai voté contre sur le principe, mais si cette proposition venait à être adoptée, j'en serais cependant un fervent adepte
|
|
|
00
|
|
|
#18 |
|
Membre régulier
![]() Patrice DelormeInscription : mai 2007 Messages : 187 ![]() |
alors y'aurais plus de methode retournant void?
|
|
00
|
|
|
#19 |
|
Expert Confirmé Sénior
![]() Inscription : avril 2002 Messages : 2 683 ![]() |
Je pense clairement que "void" doit rester "void". Le fait qu'une fonction void retourne l'objet serait un changement bien trop lourd de conséquences et ouvrirait un gros risque d'abus. L'idée me plait bien mais il faudrait trouver une autre methode.
Une possibilité (mais pas réalisable car bien trop lourd pour une si faible amélioration) serait de remplacer le "." par autre chose comme "#" qui remplacerait la valeur de retour par l'objet appelé. |
|
|
00
|
|
|
#20 | ||||
|
Membre expérimenté
![]() |
En Pascal , si je me rappelle bien on fait comme ça:
Code :
Code :
|
||||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com