Да, это правильно. Однако вы должны также переопределить метод hashCode
для отражения равенства. То есть, если у вас есть два экземпляра a
и b
, где a == b
, вы должны убедиться, что a.hashCode == b.hashCode
.
Самый простой способ достижения двух заключается в использовании кейс-класс:
case class A(private val x: Int, private val s: String)
Это дает вам исправить equals
и hashCode
для «бесплатно».
Если вы планируете возможность того, что существуют подклассы A
, вы можете посмотреть на Одерски-х idea of canEqual
(также here).
Спасибо за ваш ответ! – Finkelson