aboutsummaryrefslogtreecommitdiff
path: root/website/usageExamples/EqualsAndHashCodeExample_post.jpage
diff options
context:
space:
mode:
Diffstat (limited to 'website/usageExamples/EqualsAndHashCodeExample_post.jpage')
-rw-r--r--website/usageExamples/EqualsAndHashCodeExample_post.jpage72
1 files changed, 72 insertions, 0 deletions
diff --git a/website/usageExamples/EqualsAndHashCodeExample_post.jpage b/website/usageExamples/EqualsAndHashCodeExample_post.jpage
new file mode 100644
index 00000000..91e78250
--- /dev/null
+++ b/website/usageExamples/EqualsAndHashCodeExample_post.jpage
@@ -0,0 +1,72 @@
+import java.util.Arrays;
+
+public class EqualsAndHashCodeExample {
+ private transient int transientVar = 10;
+ private String name;
+ private double score;
+ private Shape shape = new Square(5, 10);
+ private String[] tags;
+ private int id;
+
+ public String getName() {
+ return this.name;
+ }
+
+ @Override public boolean equals(Object o) {
+ if (o == this) return true;
+ if (!(o instanceof EqualsAndHashCodeExample)) return false;
+ EqualsAndHashCodeExample other = (EqualsAndHashCodeExample) o;
+ if (!other.canEqual((Object)this)) return false;
+ if (this.getName() == null ? other.getName() != null : !this.getName().equals(other.getName())) return false;
+ if (Double.compare(this.score, other.score) != 0) return false;
+ if (!Arrays.deepEquals(this.tags, other.tags)) return false;
+ return true;
+ }
+
+ @Override public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ final long temp1 = Double.doubleToLongBits(this.score);
+ result = (result*PRIME) + (this.name == null ? 43 : this.name.hashCode());
+ result = (result*PRIME) + (int)(temp1 ^ (temp1 >>> 32));
+ result = (result*PRIME) + Arrays.deepHashCode(this.tags);
+ return result;
+ }
+
+ protected boolean canEqual(Object other) {
+ return other instanceof EqualsAndHashCodeExample;
+ }
+
+ public static class Square extends Shape {
+ private final int width, height;
+
+ public Square(int width, int height) {
+ this.width = width;
+ this.height = height;
+ }
+
+ @Override public boolean equals(Object o) {
+ if (o == this) return true;
+ if (!(o instanceof Square)) return false;
+ Square other = (Square) o;
+ if (!other.canEqual((Object)this)) return false;
+ if (!super.equals(o)) return false;
+ if (this.width != other.width) return false;
+ if (this.height != other.height) return false;
+ return true;
+ }
+
+ @Override public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result*PRIME) + super.hashCode();
+ result = (result*PRIME) + this.width;
+ result = (result*PRIME) + this.height;
+ return result;
+ }
+
+ protected boolean canEqual(Object other) {
+ return other instanceof Square;
+ }
+ }
+}