From fb6be45d2bcb97e0e0288ba81a602679c7bedc46 Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Tue, 28 Jul 2009 17:38:26 +0200 Subject: Added website feature documentation for @ToString and @EqualsAndHashCode, and modified the docs for @Data to refer to the docs of these new annotations. The build script for the website has been updated to clean out the website build dir first, so files that used to exist but have now been tossed are no longer there. There's also a special website-no-videos target which builds a website deployable without the videos. This makes the upload a lot faster if the videos haven't changed. --- usage_examples/EqualsAndHashCodeExample_post.jpage | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 usage_examples/EqualsAndHashCodeExample_post.jpage (limited to 'usage_examples/EqualsAndHashCodeExample_post.jpage') diff --git a/usage_examples/EqualsAndHashCodeExample_post.jpage b/usage_examples/EqualsAndHashCodeExample_post.jpage new file mode 100644 index 00000000..b3f6e035 --- /dev/null +++ b/usage_examples/EqualsAndHashCodeExample_post.jpage @@ -0,0 +1,60 @@ +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; + + @Override public boolean equals(Object o) { + if (o == this) return true; + if (o == null) return false; + if (o.getClass() != this.getClass()) return false; + EqualsAndHashCodeExample other = (EqualsAndHashCodeExample) o; + if (name == null ? other.name != null : !name.equals(other.name)) return false; + if (Double.compare(score, other.score) != 0) return false; + if (!Arrays.deepEquals(tags, other.tags)) return false; + return true; + } + + @Override public int hashCode() { + final int PRIME = 31; + int result = 1; + final long temp1 = Double.doubleToLongBits(score); + result = (result*PRIME) + (name == null ? 0 : name.hashCode()); + result = (result*PRIME) + (int)(temp1 ^ (temp1 >>> 32)); + result = (result*PRIME) + Arrays.deepHashCode(tags); + return result; + } + + 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 == null) return false; + if (o.getClass() != this.getClass()) return false; + if (!super.equals(o)) return false; + Square other = (Square) o; + if (width != o.width) return false; + if (height != o.height) return false; + return true; + } + + @Override public int hashCode() { + final int PRIME = 31; + int result = 1; + result = (result*PRIME) + super.hashCode(); + result = (result*PRIME) + width; + result = (result*PRIME) + height; + return result; + } + } +} -- cgit