IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Êtes-vous pour ou contre cette proposition ?

Votants
349. Vous ne pouvez pas participer à ce sondage.
  • 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%
Langage Java Discussion :

JDK 7: Proposition 13 : Accès aisé aux propriétés [Débat]


Sujet :

Langage Java

  1. #1
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre régulier
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Points : 97
    Points
    97
    Par défaut
    Et pourquoi pas appelé la méthode setAge() définit implicitement?

  3. #3
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 738
    Points
    3 738
    Par défaut
    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

  4. #4
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    contre

    n'apporte pas grand chose et je ne trouve pas la lecture plus clair

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Pour la 1, si on peut continuer à utiliser les getter/setter

  6. #6
    Membre confirmé Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Points : 597
    Points
    597
    Par défaut
    pour la 1 (existe en c# et est très pratique).

  7. #7
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    si on fait çà, en plus des getter/setter automatique, quel serais le véritable avantage sur un membre public ??

  8. #8
    Membre actif
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Points : 269
    Points
    269
    Par défaut
    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.

  9. #9
    Membre régulier
    Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 89
    Points : 111
    Points
    111
    Par défaut
    j'ai voté 1 par ce que je trouve que le mécanisme C# est bien

  10. #10
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  11. #11
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    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

  12. #12
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    C'est vrai que le "." va poser problème pour les propriétés "public", il va bien falloir distinguer

  13. #13
    Membre confirmé Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Points : 597
    Points
    597
    Par défaut
    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.

  14. #14
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    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.

  15. #15
    Membre confirmé Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Points : 597
    Points
    597
    Par défaut
    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 '.'

  16. #16
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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++

  17. #17
    Membre actif
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Points : 269
    Points
    269
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    Method<MyObject, String> method = MyObject#toString();
    Ça serait vraiment excellent !!!

  18. #18
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    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++

  19. #19
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Aucune proposition vraiment satisfaisante.

  20. #20
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    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.

Discussions similaires

  1. Zone de liste, accès aux propriétés par code
    Par AndréPe dans le forum VBA Access
    Réponses: 3
    Dernier message: 10/02/2007, 11h41
  2. Réponses: 4
    Dernier message: 22/12/2005, 12h43
  3. [Problème] Accès aux propriétés de listes nommées avec []
    Par VincentL dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/10/2005, 17h13
  4. Accès aux propriétés ScrollBar d'un composant TMemo
    Par fausto dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/10/2003, 12h08
  5. Accés rapide aux propriétés d'un Objet
    Par Alacazam dans le forum C++Builder
    Réponses: 4
    Dernier message: 28/11/2002, 22h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo