При тестировании на равенство String
в Java я всегда использовал equals()
, потому что для меня это, по-видимому, самый естественный метод для него. В конце концов, его имя уже говорит о том, что он намерен делать. Однако недавно мой коллега сказал, что меня учили использовать compareTo() == 0
вместо equals()
. Это кажется неестественным (поскольку compareTo()
предназначен для обеспечения упорядочения, а не сравнения для равенства) и даже несколько опасного (поскольку compareTo() == 0
не обязательно подразумевает равенство во всех случаях, хотя я знаю, что он делает для String
) мне.
Он не знал, почему его учили использовать compareTo()
вместо equals()
для String
, и я тоже не мог найти причину. Это действительно вопрос личного вкуса, или есть ли настоящая причина для любого метода?