mirror of
https://github.com/tiennm99/lombok.git
synced 2026-05-26 07:58:54 +00:00
fb6be45d2b
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.
61 lines
1.7 KiB
Plaintext
61 lines
1.7 KiB
Plaintext
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;
|
|
}
|
|
}
|
|
}
|