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 la proposition 1 102 29,23%
Pour la proposition 2 10 2,87%
Pour la proposition 3 11 3,15%
Contre 226 64,76%
Votants: 349. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse
 
Outils de la discussion
Vieux 18/12/2007, 22h54   #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 13 : Accès aisé aux propriétés

Accès aisé aux propriétés

Proposition 1 :
En utilisation le point comme séparateur
Code :
1
2
3
4
5
6
7
8
 
public class Person {
 public property String forename;
 public property int age;
}
Person p = new Person();
p.forename = "Stephen";   // calls setter
String str = p.forename;  // calls getter
Proposition 2 :
En utilisant => comme séparateur

Code :
1
2
3
4
5
6
7
8
 
public class Person {
 public property String forename;
 public property int age;
}
Person p = new Person();
p=>forename = "Stephen";   // calls setter
String str = p=>forename;  // calls getter
Proposition 3 :
En utilisant # comme séparateur

Code :
1
2
3
4
5
6
7
8
 
public class Person {
 public property String forename;
 public property int age;
}
Person p = new Person();
p#forename = "Stephen";   // calls setter
String str = p#forename;  // calls getter
__________________
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, 09h35   #2
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
Et pourquoi pas appelé la méthode setAge() définit implicitement?
metalpetsFR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h06   #3
lunatix
Rédacteur/Modérateur
 
Avatar de lunatix
 
Homme julien
Architecte technique
Inscription : novembre 2002
Messages : 1 908
Détails du profil
Informations personnelles :
Nom : Homme julien
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Architecte technique

Informations forums :
Inscription : novembre 2002
Messages : 1 908
Points : 3 318
Points : 3 318
Envoyer un message via ICQ à lunatix Envoyer un message via AIM à lunatix Envoyer un message via MSN à lunatix
clairement contre, tant que c'est ajouter un nouveau mot clé, ou pire les => ou # en accesseurs.

(et puis bon, comment on fait avec les annotations qui se placent sur les méthodes apres @Required de spring, les annotation jpa etc...)

modifier le langage pour remplacer quelque chose qui se fait en 3 secondes avec un ide, je trouve ca inutile
__________________
Blog blog = new MyBlog();
lunatix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h04   #4
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
contre

n'apporte pas grand chose et je ne trouve pas la lecture plus clair
__________________
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, 11h39   #5
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 821
Points : 5 821
Pour la 1, si on peut continuer à utiliser les getter/setter
OButterlin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h59   #6
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
pour la 1 (existe en c# et est très pratique).
heid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h06   #7
BakaOnigiri
Membre confirmé
 
Avatar de BakaOnigiri
 
Inscription : avril 2002
Messages : 343
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 343
Points : 207
Points : 207
si on fait çà, en plus des getter/setter automatique, quel serais le véritable avantage sur un membre public ??
BakaOnigiri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h19   #8
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 BakaOnigiri Voir le message
si on fait çà, en plus des getter/setter automatique, quel serais le véritable avantage sur un membre public ??
C'est exactement ce que je pense aussi.

Ça ne permet que d'économiser que quelques caractères, et rend l'instruction confuse.
bobuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h35   #9
cisco
Membre régulier
 
Consultant informatique
Inscription : octobre 2002
Messages : 80
Détails du profil
Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : octobre 2002
Messages : 80
Points : 80
Points : 80
j'ai voté 1 par ce que je trouve que le mécanisme C# est bien
cisco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 13h01   #10
eclesia
Rédacteur
 
Avatar de eclesia
 
Inscription : décembre 2006
Messages : 1 876
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 1 876
Points : 2 254
Points : 2 254
Contre la 1 sinon je ne vois pas comment on va distinguer une variable public d'une propriété public.
Quand on utilise un get/set on suppose qu'il y a un mecanisme de protection contre les erreurs de parametres etc...
Quand on a une variable public (donc on utlise le .) on sait qu'il n'y a aucune sécurité. Donc on ne code pas de la meme maniere.

Code :
1
2
3
4
5
6
7
8
9
10
11
public class Person {
 public property String forename;
 public property int age;
 public String pseudo;
}

Person p = new Person();
p.forename = "Stephen";   // calls setter
String str = p.forename;  // calls getter
String str2 = p.pseudo; // calls rien du tout!!!
donc si "property" il y a, il ne faut surtout pas utiliser le '.'
je vote pour le # qui permet de les differencier :

Code :
1
2
3
4
5
6
7
8
9
10
11
public class Person {
 public property String forename;
 public property int age;
 public String pseudo;
}

Person p = new Person();
p#forename = "Stephen";   // calls setter
String str = p#forename;  // calls getter
String str2 = p.pseudo; // calls rien du tout, mais on le sait
ps : j'ai voté contre les "property" donc je vote au cas où ici
__________________
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, 14h21   #11
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
Contre,

Encore une fois un sucre syntaxique pas très utile (on économise 6 caractères, quelle fête) par contre on perd beaucoup en lisibilité.. sans compter les gens qui avaient déjà du mal a faire des set/get au lieu d'un champ public, si l'appel est le même elles vont se donner encore moins de mal pour faire les choses proprement.

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, 14h28   #12
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 821
Points : 5 821
C'est vrai que le "." va poser problème pour les propriétés "public", il va bien falloir distinguer
OButterlin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 14h52   #13
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
Sous visual studio cette différentiation se fait dans l'infobulle et dans l'icone du champ de l'autocomplétion ou on peut différentier un champ d'une propriété. Pour ma part ca ne m'a jamais posé problème, à vrais dire je n'avais jamais remarqué le problème.

Le # me semble une très mauvaise idée au contraire.
heid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 15h07   #14
eclesia
Rédacteur
 
Avatar de eclesia
 
Inscription : décembre 2006
Messages : 1 876
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 1 876
Points : 2 254
Points : 2 254
Citation:
Envoyé par heid Voir le message
Sous visual studio cette différentiation se fait dans l'infobulle et dans l'icone du champ de l'autocomplétion ou on peut différentier un champ d'une propriété. Pour ma part ca ne m'a jamais posé problème, à vrais dire je n'avais jamais remarqué le problème.

Le # me semble une très mauvaise idée au contraire.
Java n'est pas C#. M$ fait ce qu'il lui plait, libre a lui de nous empecher de faire la difference entre un '.' (propriété) et un '.' (variable public) sans son editeur propriétaire.

Ok le # n'est pas forcement le bon séparateur. un ^ ou ! serait pas mal non plus du moment qu'on peut faire la difference.
__________________
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, 15h16   #15
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:
Java n'est pas C#
Franchement a la vue des modifications proposées ca converge quand même énormément...

Sinon je partage ton apréhention par rapport à l'IDE. Pour ma part mieux vaux rien du tout que un autre caractère que le '.'
heid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 15h38   #16
adiGuba
Expert Confirmé Sénior
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 654
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 654
Points : 22 428
Points : 22 428
Contre même si cela ne me dérangerait pas...

Mis à part la première solution qui est vraiment affreuse car elle porte à confusion : on ne devrait pas avoir besoin d'un EDI pour savoir ce que fait une ligne de code !!!




Par contre j'avais vu une proposition bien plus intéressante qui consistait à avoir accès aux informations de réflections des méthodes et propriétée javabeans de manière static tout comme le .class :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
	MyObject instance = new MyObject();
 
	// On récupère le type de manière static :
	Class<MyObject> type = MyObject.class;
 
	// On récupère une méthode de manière static :
	Method<MyObject, String> method = MyObject#toString();
	String s = method.invoke(instance); // équivalent à instance.toString()
 
	// On récupère une propriété et ses getter/setter de manière static :
	Property<MyObject, String> property = MyObject#name;
	String s = property.get(instance); // équivalent à instance.getName()
	property.set(instance, "newName"); // équivalent à instance.setName("newName")
ceci me brancherait bien plus

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, 16h14   #17
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 adiGuba Voir le message
Par contre j'avais vu une proposition bien plus intéressante qui consistait à avoir accès aux informations de réflections des méthodes et propriétée javabeans de manière static tout comme le .class
Tu as des réfs ??
Tu peux pas imaginer ce que je donnerai pour avoir ça !! Car, utilisant pas mal la réflexivité, ça me fait toujours mal de devoir faire une référence avec une chaîne de caractère, qui n'est pas du tout vérifiée à la compilation, et reste très approximatif.

Code :
Method<MyObject, String> method = MyObject#toString();
Ça serait vraiment excellent !!!
bobuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 16h19   #18
adiGuba
Expert Confirmé Sénior
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 654
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 654
Points : 22 428
Points : 22 428
Citation:
Envoyé par bobuse Voir le message
Tu as des réfs ??
Non malheureusement...

J'ai retranscrit cela de mémoire... mais si je retrouve la proposition je la posterais ici

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, 19h11   #19
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
Aucune proposition vraiment satisfaisante.
elitost est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 23h25   #20
nicorama
Membre Expert
 
Avatar de nicorama
 
Inscription : juillet 2006
Messages : 765
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 765
Points : 1 054
Points : 1 054
Rien d'assez interessant pour mériter de chambouler ce qui a été fait avant. Comparé aux avancées vraiment pratiques du JDK5, ca fera trop de changement peu utile qui masquera les réelles avancées, si il y en a.
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT.
API Simple et Productive. Avec style.
nicorama 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 20h20.


 
 
 
 
Partenaires

Hébergement Web