Je sais tout ce que tu dis là. Mais je ne vois toujours pas en quoi ce serait mal de pouvoir utiliser '==' comme égalité de valeur (bien entendu si ça avait été pensé comme ça depuis le début) car :
il est beaucoup plus courant de s'intéresser à l'égalité de valeur
dans la plupart des cas également, on s'attend à avoir une relation d'égalité symétrique. Or a.equals(b) est une écriture asymétrique (mais dans le cas d'une surcharge de l'opérateur == on n'est pas sûr de cette symétrie, qui est effectivement dépendante de l'implémentation)
Bien entendu ça n'aurait marché que si ça avait été pensé comme ça depuis le début, avec une autre façon de pouvoir tester l'égalité de pointeur dans les cas (moins nombreux à mon avis) où c'est cette information que l'on veut (genre a'address = b'address)
Et quand t'ecris du code un tant soit peu generique, t'es meme certain que ca va pas marcher pour tous les objets dont == a ete surcharge.
Moi qui croyait que dans 110% des cas le programmeur Java n'avait pas à se poser des questions sur les pointeurs...
Plus sérieusement, dans une application écrite en java, quels sont les applications pratiques de l'égalité de pointeur ? La gestion d'un pool d'objet ? Généralement la partie «métier» va jouer sur les valeurs, et tout ce qui est plus bas niveau pourrait jouer sur des pointeurs, non ? Et je pense que ce sont les gens qui s'occupent du niveau plus bas qui doivent le mieux connaître leur langage, et donc connaître la syntaxe particulière de la comparaison de pointeur, et qu'on devrait laisser aux autres la syntaxe plus jolie du '==' pour la comparaison de valeur (qui en plus aurait l'avantage d'être cohérent avec l'égalité de valeur des types de base...)
Enfin, bon, je m'en fous un peu, je trouverais juste ça plus élégant. Mais je ne fais pas de java dans la vie de tous les jours, et pas d'allocations dynamiques, donc j'ai assez peu de problèmes de pointeurs.
Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.
[^] # Re: Les vrais ajouts
Posté par 2PetitsVerres (Mastodon) . En réponse au journal Java 7 est dispo !. Évalué à 3.
Je sais tout ce que tu dis là. Mais je ne vois toujours pas en quoi ce serait mal de pouvoir utiliser '==' comme égalité de valeur (bien entendu si ça avait été pensé comme ça depuis le début) car :
Bien entendu ça n'aurait marché que si ça avait été pensé comme ça depuis le début, avec une autre façon de pouvoir tester l'égalité de pointeur dans les cas (moins nombreux à mon avis) où c'est cette information que l'on veut (genre a'address = b'address)
Moi qui croyait que dans 110% des cas le programmeur Java n'avait pas à se poser des questions sur les pointeurs...
Plus sérieusement, dans une application écrite en java, quels sont les applications pratiques de l'égalité de pointeur ? La gestion d'un pool d'objet ? Généralement la partie «métier» va jouer sur les valeurs, et tout ce qui est plus bas niveau pourrait jouer sur des pointeurs, non ? Et je pense que ce sont les gens qui s'occupent du niveau plus bas qui doivent le mieux connaître leur langage, et donc connaître la syntaxe particulière de la comparaison de pointeur, et qu'on devrait laisser aux autres la syntaxe plus jolie du '==' pour la comparaison de valeur (qui en plus aurait l'avantage d'être cohérent avec l'égalité de valeur des types de base...)
Enfin, bon, je m'en fous un peu, je trouverais juste ça plus élégant. Mais je ne fais pas de java dans la vie de tous les jours, et pas d'allocations dynamiques, donc j'ai assez peu de problèmes de pointeurs.
Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.