Override equals(Object) for a value class
Override equals(Object) for a value class
Answer
@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Pair)) return false; Pair p = (Pair) o; return value == p.value && Objects.equals(key, p.key); }
Note the parameter is Object (so it overrides, not overloads). The instanceof check both rejects nulls and wrong types before the cast. Objects.equals(key, p.key) compares strings null-safely; the primitive int uses ==.