PMD: Implement equals()
This commit is contained in:
parent
ce40e5bdf2
commit
49ef6b530c
|
@ -746,7 +746,7 @@ public class HashCodeBuilder implements Builder<Integer> {
|
||||||
// some stage. There are backwards compat issues, so
|
// some stage. There are backwards compat issues, so
|
||||||
// that will have to wait for the time being. cf LANG-342.
|
// that will have to wait for the time being. cf LANG-342.
|
||||||
public HashCodeBuilder append(final long value) {
|
public HashCodeBuilder append(final long value) {
|
||||||
iTotal = iTotal * iConstant + ((int) (value ^ (value >> 32)));
|
iTotal = iTotal * iConstant + (int) (value ^ value >> 32);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -893,6 +893,18 @@ public class HashCodeBuilder implements Builder<Integer> {
|
||||||
return Integer.valueOf(toHashCode());
|
return Integer.valueOf(toHashCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(final Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(obj instanceof HashCodeBuilder)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final HashCodeBuilder other = (HashCodeBuilder) obj;
|
||||||
|
return iTotal == other.iTotal;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The computed {@code hashCode} from toHashCode() is returned due to the likelihood
|
* The computed {@code hashCode} from toHashCode() is returned due to the likelihood
|
||||||
* of bugs in mis-calling toHashCode() and the unlikeliness of it mattering what the hashCode for
|
* of bugs in mis-calling toHashCode() and the unlikeliness of it mattering what the hashCode for
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
package org.apache.commons.lang3.builder;
|
package org.apache.commons.lang3.builder;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
|
@ -331,6 +332,18 @@ public class HashCodeBuilderTest extends AbstractLangTest {
|
||||||
assertEquals((17 * 37 + h1) * 37 + h2, new HashCodeBuilder(17, 37).append((Object) obj).toHashCode());
|
assertEquals((17 * 37 + h1) * 37 + h2, new HashCodeBuilder(17, 37).append((Object) obj).toHashCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEquals() {
|
||||||
|
final HashCodeBuilder hcb1 = new HashCodeBuilder(17, 37).append(1).append('a');
|
||||||
|
final HashCodeBuilder hcb2 = new HashCodeBuilder(17, 37).append(1).append('a');
|
||||||
|
final HashCodeBuilder hcb3 = new HashCodeBuilder(17, 37).append(2).append('c');
|
||||||
|
assertEquals(hcb1, hcb1);
|
||||||
|
assertEquals(hcb1, hcb2);
|
||||||
|
assertEquals(hcb2, hcb1);
|
||||||
|
assertNotEquals(hcb1, hcb3);
|
||||||
|
assertNotEquals(hcb2, hcb3);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFloat() {
|
public void testFloat() {
|
||||||
assertEquals(17 * 37, new HashCodeBuilder(17, 37).append(0f).toHashCode());
|
assertEquals(17 * 37, new HashCodeBuilder(17, 37).append(0f).toHashCode());
|
||||||
|
|
Loading…
Reference in New Issue