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.
This commit is contained in:
Reinier Zwitserloot
2009-07-28 17:38:26 +02:00
parent e744f1829a
commit fb6be45d2b
13 changed files with 354 additions and 32 deletions
@@ -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;
}
}
}