public class AnnotationOverwriteTest { private int intProperty; private boolean booleanProperty; private double doubleProperty; private String stringProperty; public int getIntProperty() { return intProperty; } public boolean isBooleanProperty() { return booleanProperty; } public double getDoubleProperty() { return doubleProperty; } public String getStringProperty() { return stringProperty; } public static void main(String[] args) { final AnnotationOverwriteTest test = new AnnotationOverwriteTest(); System.out.println(test.hashCode()); } public boolean equals(Object o) { if (o == this) return true; if (!(o instanceof AnnotationOverwriteTest)) return false; final AnnotationOverwriteTest other = (AnnotationOverwriteTest) o; if (!other.canEqual((java.lang.Object) this)) return false; if (this.getIntProperty() != other.getIntProperty()) return false; if (this.isBooleanProperty() != other.isBooleanProperty()) return false; if (java.lang.Double.compare(this.getDoubleProperty(), other.getDoubleProperty()) != 0) return false; final java.lang.Object this$stringProperty = this.getStringProperty(); final java.lang.Object other$stringProperty = other.getStringProperty(); if (this$stringProperty == null ? other$stringProperty != null : !this$stringProperty.equals(other$stringProperty)) return false; return true; } public int hashCode() { final int PRIME = 59; int result = 1; result = result * PRIME + this.getIntProperty(); result = result * PRIME + (this.isBooleanProperty() ? 79 : 97); final long $doubleProperty = java.lang.Double.doubleToLongBits(this.getDoubleProperty()); result = result * PRIME + (int) ($doubleProperty >>> 32 ^ $doubleProperty); final java.lang.Object $stringProperty = this.getStringProperty(); result = result * PRIME + ($stringProperty == null ? 43 : $stringProperty.hashCode()); return result; } protected boolean canEqual(java.lang.Object other) { return other instanceof AnnotationOverwriteTest; } }