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 185 55,72%
Contre 147 44,28%
Votants: 332. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse
 
Outils de la discussion
Vieux 18/12/2007, 22h44   #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 670
Points : 7 670
Par défaut JDK 7: Proposition 12 : déclaration des propriétés

But: supprimer le fait d'écrire des setters et getters
Code :
1
2
3
4
5
 
public class Person {
 public property String forename;
 public property int age;
}
__________________
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 00
Vieux 19/12/2007, 00h25   #2
JPDMJC
Membre éclairé
 
Avatar de JPDMJC
 
Inscription : février 2005
Messages : 337
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : février 2005
Messages : 337
Points : 346
Points : 346
Envoyer un message via MSN à JPDMJC
J'ai voté non, je préfère garder un plein contrôle sur mes getters et setters.
Certes, ce mot clef permettrait d'économiser quelques lignes de code, mais enfin bon, les éditeurs d'aujourd'hui peuvent les construire en un ou deux clics.

Sinon, pour le code exemple, l'appel du getter sous-entendu - par exemple pour la propriété age - serait bien getAge() ? C'est juste pour être sûr à 100%, des fois que ^^.
JPDMJC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 09h33   #3
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
Moi je suis 100% pour, je pense même que c'est la proposition la plus intéressante, pour plusieurs raison

1 De nombreux framework utilise la reflexivité (PropertyUtils#setProperty(..)) pour mettre a jour l'attribut d'un objet,
puis avec son IDE préféré en fait un "open call hierarchy" sur la méthode on trouve aucun appel.... dommage
2 Pour les commentaires on souhaite souvent décrire l'utilité d'un attribut et non pas la méthode pas la méthode qui va mettre ajour cette propriété. A moins de triplé le commentaire(attribut, setter getter)
3
Citation:
je préfère garder un plein contrôle sur mes getters et setters.
Ici on parle de property, une property au sens java bean, n'a pas a avoir de controle.

Je crois que ceci a été faite dans C#, mais je n'ai jamais expérimenté.

Merci pour le débat tres intéressant... :p
metalpetsFR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h10   #4
Uther
Expert Confirmé Sénior
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 678
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 678
Points : 5 107
Points : 5 107
Pour, mais il faudra que ca soit plus avancé que cette courte description. Il faudrait garder la possibilité de redéfinir les getter/setters, et de faire des propriété read/write only.

J'ai vu pas mal de sujets intéressant qui discutaient de la manière de traiter ca.
Uther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h19   #5
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
Pour si on peut garder la possibilité de faire des getteur setteur.
__________________
Pour me faire grandir
zulot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h02   #6
austin P.
Membre habitué
 
Avatar de austin P.
 
Inscription : juin 2004
Messages : 175
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : juin 2004
Messages : 175
Points : 142
Points : 142
plutot pour

evite les kilometres de getter et setter
vas dans le sens de l'IOC qui est un plus
il manque par contre la notion de read/write
__________________
En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")
austin P. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h06   #7
Supersami2000
Invité régulier
 
Homme
Inscription : juin 2002
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : France

Informations forums :
Inscription : juin 2002
Messages : 14
Points : 9
Points : 9
Pour mais un peu plus configurable.
Sinon comment dire "je veux juste un setteur" "le setteur est protected"

Pourquoi ne pas ajouter des annotations prisent en compte au javac

Code :
1
2
3
4
5
6
7
8
 
public class Person {
 @access readWrite protected
 public String forename;
 
 @access read public
 public int age;
}
Supersami2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h08   #8
elitost
Rédacteur
 
Avatar de elitost
 
Homme Eric REBOISSON
Consultant informatique
Inscription : septembre 2003
Messages : 2 032
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 032
Points : 7 357
Points : 7 357
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
Je vote pour, même si ça pourrait être "confusing".
elitost est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h28   #9
romaintaz
Rédacteur/Modérateur
 
Avatar de romaintaz
 
Homme Romain Linsolas
Java craftsman
Inscription : juillet 2005
Messages : 3 579
Détails du profil
Informations personnelles :
Nom : Homme Romain Linsolas
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Java craftsman
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 3 579
Points : 6 722
Points : 6 722
Clairement pour !
C'est franchement lourd, inutile et polluant de mettre 50 getters et setters dans son bean Java.
D'autant que si j'ai vraiment besoin que mon getter (ou setter) fasse quelque chose de spécial, alors je définis moi-même mon getter ou setter.
L'idéal serait que si je fais ça :

Code :
1
2
3
4
5
6
 
public property String maPropriete;
 
public String getMaPropriete() {
    // mon code à moi
}
alors ce soit mon getMaPropriete() qui soit appelé, mais pour le setter, c'est Java qui gère...
__________________
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, 11h36   #10
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 823
Points : 5 823
Pour, évidement, il faut pouvoir redéfinir le getter/setter si besoin est...
Donc, dans le cas suivant :
Code :
1
2
3
4
5
6
7
8
9
10
 
public class MonObjet
{
   private property String chaine1;
 
   public String getChaine1()
   {
      return chaine1 == null ? "" : chaine1;
   }
}
fonctionnerait comme l'override...
Quelle serait la convention utilisée pour les boolean ( isMaPropriete() ou getMaPropriete()...)
OButterlin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h57   #11
heid
Membre éclairé
 
Avatar de heid
 
Inscription : mai 2002
Messages : 338
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2002
Messages : 338
Points : 330
Points : 330
je préfère de loin la syntaxe c# qui me parait un très bon compromis entre fonctionnalité et concision :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
private String _test;
public String test
  {
    get
    {
      return _test;
    }
    set
    {
      _test = value;
    }
  }
heid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h02   #12
BakaOnigiri
Membre confirmé
 
Avatar de BakaOnigiri
 
Inscription : avril 2002
Messages : 344
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 344
Points : 210
Points : 210
pour, mais comme le dit OButterlin il faut pouvoir faire en sorte qu'un getter/setter perso prenne le pas sur le getter/setter automatique
BakaOnigiri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h02   #13
romaintaz
Rédacteur/Modérateur
 
Avatar de romaintaz
 
Homme Romain Linsolas
Java craftsman
Inscription : juillet 2005
Messages : 3 579
Détails du profil
Informations personnelles :
Nom : Homme Romain Linsolas
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Java craftsman
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 3 579
Points : 6 722
Points : 6 722
Pas vraiment d'accord avec heid, dans la mesure où la proposition du langage permettrait de zapper complètement l'écriture des getters et setters basiques. Là, tu es obligé de tout écrire, même si c'est un peu plus propre / court qu'actuellement...
__________________
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, 12h05   #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
Je suis pour si toutes les propositions précédentes sont présentes
__________________
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, 12h38   #15
eclesia
Rédacteur
 
Avatar de eclesia
 
Inscription : décembre 2006
Messages : 1 878
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 1 878
Points : 2 257
Points : 2 257
Contre. Imaginer que vous vouliez changer le nom de votre variable. le nom des get/set changera avec ... quel beau bordel ca fera.
__________________
Systèmes d'Informations Géographiques
- Projets : GeoAPI GeotoolKit PuzzleGIS

Pour un monde sans BigBrother IxQuick ni censure RSF
eclesia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 13h30   #16
heid
Membre éclairé
 
Avatar de heid
 
Inscription : mai 2002
Messages : 338
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mai 2002
Messages : 338
Points : 330
Points : 330
Citation:
Envoyé par romaintaz Voir le message
Pas vraiment d'accord avec heid, dans la mesure où la proposition du langage permettrait de zapper complètement l'écriture des getters et setters basiques. Là, tu es obligé de tout écrire, même si c'est un peu plus propre / court qu'actuellement...
Justement zapper complètemen je suis contre. et les get set c'est trop lourd syntaxiqueemnt.
heid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 13h43   #17
romaintaz
Rédacteur/Modérateur
 
Avatar de romaintaz
 
Homme Romain Linsolas
Java craftsman
Inscription : juillet 2005
Messages : 3 579
Détails du profil
Informations personnelles :
Nom : Homme Romain Linsolas
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Java craftsman
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 3 579
Points : 6 722
Points : 6 722
Je reste pour
La plupart de mes accesseurs sont vraiment basiques, je préférerais placer le mot property devant, et c'est marre !
Vu que c'est un ajout à l'existent, rien ne m'empêche de garder mes bons vieux setters et getters si j'en ai envie !
C'est comme le for (String maString: maListeDeString) { ... } : ça n'ajoute pas de nouvelles fonctionnalités, mais ça allège le code de lignes inutiles...
__________________
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, 14h19   #18
bulbo
Rédacteur
 
Avatar de bulbo
 
Homme
Consultant informatique
Inscription : février 2004
Messages : 1 180
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 180
Points : 1 856
Points : 1 856
Un tout petit petit pour ..

D'ailleurs ça doit être faisable déjà aujourd'hui avec des assertions.

Pas un gain énorme sauf quand on doit écrire un javabean stupide a la mano, mais la plupart du temps on passe par un framework X ou Y aujourd'hui donc ..

Faudrait que la javadoc suive aussi dans ce cas et ajoute les méthodes invisibles dans le code automatiquement.
Pour moi inutile de donner la priorité a un getter écrit a la mano par exemple, il faut dans ce cas virer le mot clé property et faire les choses correctement en contrôlant le getter et le setter.

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, 14h35   #19
romaintaz
Rédacteur/Modérateur
 
Avatar de romaintaz
 
Homme Romain Linsolas
Java craftsman
Inscription : juillet 2005
Messages : 3 579
Détails du profil
Informations personnelles :
Nom : Homme Romain Linsolas
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Java craftsman
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 3 579
Points : 6 722
Points : 6 722
Citation:
Envoyé par bulbo Voir le message
Pour moi inutile de donner la priorité a un getter écrit a la mano par exemple, il faut dans ce cas virer le mot clé property et faire les choses correctement en contrôlant le getter et le setter.
Je suis tout à fait d'accord, c'est bien plus propre. Maintenant, rien ne t'empêche de définir un setter (ou un getter) sur une property, et dans ce cas, j'estime qu'il est important que le setter (getter) défini manuellement soit prioritaire...
__________________
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, 14h40   #20
bulbo
Rédacteur
 
Avatar de bulbo
 
Homme
Consultant informatique
Inscription : février 2004
Messages : 1 180
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 180
Points : 1 856
Points : 1 856
Citation:
Envoyé par romaintaz Voir le message
Je suis tout à fait d'accord, c'est bien plus propre. Maintenant, rien ne t'empêche de définir un setter (ou un getter) sur une property, et dans ce cas, j'estime qu'il est important que le setter (getter) défini manuellement soit prioritaire...
Tu peux aussi avoir une erreur de compil qui te dit que tu essayes de redéfinir un get/set d'une property et je préfèrerais ça. Imagine tu fais une faute de frappe dans le nom de ta méthode .. du coup tu n'appelleras pas la bonne et en regardant ton code tu auras l'impression que si ..

Alors que si 'property' get/set auto sinon get/set a la mano, tu es sur de pas te planter..

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
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h04.


 
 
 
 
Partenaires

Hébergement Web