support for arrays in template j.u.Objects.equals/hashCode (IDEA-162302)

This commit is contained in:
Anna Kozlova
2017-06-08 15:44:24 +03:00
parent 52e5edb007
commit e78186d6ae
6 changed files with 155 additions and 11 deletions

View File

@@ -0,0 +1,31 @@
import java.util.Arrays;
class I {
public int hashCode() {
return 0;
}
public boolean equals(Object o) {
return o == this;
}
}
class A extends I {
int[] a1;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
final A a = (A) o;
return Arrays.equals(a1, a.a1);
}
@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + Arrays.hashCode(a1);
return result;
}
}