Il semble y avoir un débat en cours sur la question de savoir s'il est sûr de s'appuyer sur l'implémentation actuelle de String.hashCode()
car, techniquement, il est garanti par la spécification (Javadoc).Pourquoi Sun a-t-il spécifié l'implémentation de String.hashCode()?
- Pourquoi Sun a-t-il spécifié l'implémentation de
String.hashCode()
dans la spécification? - Pourquoi les développeurs auraient-ils besoin de s'appuyer sur une implémentation spécifique de hashCode()? Pourquoi le soleil a-t-il si peur que le ciel tombera si
String.hashCode()
est changé dans le futur? (Ceci est probablement expliqué par # 2)
Bon point! Je me demande ... auraient-ils pu réaliser la même chose sans verrouiller hashCode()? – Gili
@Gili, non sans ajouter une méthode appelée "implementationAndVersionIndependentHashCode()" ;-) – Rob
@Gili s'ils n'ont pas verrouillé hashCode, comment pourraient-ils être certains que deux machines connectées via RMI pourraient passer des hachages en va-et-vient? Je suppose que vous avez juste à abandonner le concept d'un hachage partagé. –