Salut,
Pour info, sur le billet En Vrac du blog du 8 décembre, il y a un lien vers le blog de Danny Coward qui parle du JDK7 et des fonctionnalitées qui sont à l'étude :
Dans le PDF il y a une partie sur de nouvelles fonctions du langage qui sont à l'étude (mais cela ne signifie en aucun cas que ce sera forcément intégré), et on y parle brièvement de cela (pas exactement de la même manière toutefois) !
Ceci :
1 2 3
| private String foo;
public String getFoo() {..}
public void setFoo(String foo){..} |
Pourrait être remplacé par ceci :
public property String foo;
J'avait également déjà vu une autre version basée sur les annotations, de mémoire (car je n'ai pas le lien sous la main) :
1 2
| private @Property() String foo1;
private @Property(Access.READ_ONLY) String foo2; |
Perso, je pense que cela peut être une bonne idée, à condition que cela génère des méthodes setter/getter standard, et qu'il soit toujours possible de les codé soit-même (sinon ils n'ont plus aucun intérêt). Il serait bien également de pouvoir y ajouter la gestion d'un PropertyChangeEvent...
Envoyé par
professeur shadoko
j'ai cru comprendre qu'en C# (vade retro satanas) c'est pas trop mal conçu: on décrit les accesseurs/mutateurs et leur visibilité, le compilateur remplace alors dans le code courant les appels direct par des appels aux accesseurs/mutateurs.
Hum... personnellement cela ne me plait pas trop, car il s'agit d'une syntaxe simple (et qui sera donc utilisé surtout par les débutant), alors que derrière cela utilise des concepts un peu plus compliqué... et que comme beaucoup de facilité d'écriture cela peut provoquer des problèmes dû à la méconnaissance des méchanismes cachés...
Par contre le document PDF cité plus haut proposait une solution alternative en utilsiant l'opérateur -> du C/C++ (mais d'une manière différente), afin de pouvoir remplacé le code suivant :
Par ceci :Je suis un peu sceptique (il faudrait voir à l'usure) mais ca pourrait être intérressant (bien entendu le bytecode généré devra être strictement le même).
a++
Partager