mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
support for arrays in template j.u.Objects.equals/hashCode (IDEA-162302)
This commit is contained in:
+29
@@ -0,0 +1,29 @@
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
class A {
|
||||
int i;
|
||||
String s;
|
||||
int[] a1;
|
||||
int[] a2;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
final A a = (A) o;
|
||||
return i == a.i &&
|
||||
Objects.equals(s, a.s) &&
|
||||
Arrays.equals(a1, a.a1) &&
|
||||
Arrays.equals(a2, a.a2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
|
||||
int result = Objects.hash(i, s);
|
||||
result = 31 * result + Arrays.hashCode(a1);
|
||||
result = 31 * result + Arrays.hashCode(a2);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
+31
@@ -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;
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
class A {
|
||||
int i;
|
||||
String s;
|
||||
int[] a1;
|
||||
int[] a2;
|
||||
<caret>
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
class I {
|
||||
public int hashCode() {
|
||||
return 0;
|
||||
}
|
||||
public boolean equals(Object o) {
|
||||
return o == this;
|
||||
}
|
||||
}
|
||||
class A extends I {
|
||||
int[] a1;
|
||||
|
||||
<caret>
|
||||
}
|
||||
Reference in New Issue
Block a user