oronze hai dimenticato a dire che le stringhe non si confrontano per == ma per equals.![]()
![]()
Tutti gli oggetti implementano il metodo equals, che nella forma base non fa altro che
oggetto == other
confrontando i riferimenti degli oggetti. In questo caso se riferimenti uguali uguaglianza degli oggetti, riferimenti diversi differenza degli oggetti (anche se il contenuto è uguale).
Nei casi in cui bisogna fare confronti è sempre meglio fare l'override almeno di equals (hashcode ci mette al sicuro se dobbiamo usarlo in strutture).
Per le classi fornite dal JDK (in questo caso String) esiste una implementazione di equals e hashcode già pronta, dobbiamo solo ricordare che il confronto di stringhe si fa per equals (O equalsignorecase) e non per ==