How to define an `equals` method in a Scala class (object equality)
By Alvin Alexander. Last updated: June 10 2019
Table of Contents1 - Solution2 - A Scala `equals` method example3 - Discussion4 - Example 2: A Scala `equals` method with inheritance5 - Implementing hashCode6 - See Also
Scala problem: You want to define an equals
method for your class so you can compare object instances to each other.
Solution
If you’re new to Scala, a first thing to know is that object instances are compared with ==
:
"foo" == "foo" // true
"foo" == "bar" // false
"foo" == null // false
null == "foo" // false
1 == 1 // true
1 == 2 // false
1d == 1.0d // true
case class Person(name: String)
Person("Jess") == Person("Jessie") // false
This is different than Java, which uses ==
for primitive values and equals
for object comparisons.