Giriş
Şu satırı dahil ederiz.
append metodu
Örnek
Şöyle yaparız.
Ata sınıf varsa kullanılır.
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız.
Üçüncü parametre testTransients anlamına gelir.
Örnek
Şöyle yaparız.
Şu satırı dahil ederiz.
import org.apache.commons.lang3.builder.EqualsBuilder;
Bu sınıfın en son isEquals() metodunu çağırmak lazım. Eğer hangi alanın eşitliği bozduğunu bulmak istersek şöyle yaparızzimport java.util.Map;
import java.util.TreeMap;
import org.apache.commons.lang3.builder.EqualsBuilder;
public class MyEqualsBuilder extends EqualsBuilder {
private final Map<String, Object> violatedFieldValues = new TreeMap<>();
/**
* @param name - the name of appended property.
* @see #append
**/
public <T> EqualsBuilder myAppend(T lhs, T rhs, String name) {
assert (null != name);
append(lhs, rhs);
if (violatedFieldValues.isEmpty() && !isEquals()) {
violatedFieldValues.put(name, rhs);
}
return this;
}
/**
* Gets the Map of field name to (right hand) value,
* which first violated the equality of this equals builder.
* Contains 0 - 1 entries.
**/
public Map<String, Object> getViolatedFieldValues() {
return violatedFieldValues;
}
}
append metodu
Örnek
Şöyle yaparız.
@Override
public boolean equals(Object o) {
if (!(o instanceof Admin)) {
return false;
}
Admin otherAdmin = (Admin) o;
EqualsBuilder builder = new EqualsBuilder();
builder.append(getUserName(), otherAdmin.getUserName());
return builder.isEquals();
}
appendSuper metoduAta sınıf varsa kullanılır.
Örnek
Şöyle yaparız.
public boolean equals(Object obj) {
...
MyClass other = (MyClass) obj;
return new EqualsBuilder()
.appendSuper(super.equals(obj))
.append(field1, other.field1)
.append(field2, other.field2)
.isEquals();
}
reflectionEquals metodu - Object + ObjectÖrnek
Şöyle yaparız.
@Override
public boolean equals(Object o) {
return EqualsBuilder.reflectionEquals(this, o);
}
reflectionEquals metodu - Object + Object + Collection
Üçüncü parametre excludeFields anlamına gelir.Örnek
Şöyle yaparız.
@Override
public boolean equals(Object o) {
return EqualsBuilder.reflectionEquals(this, o, Arrays.asList(id));
}
reflectionEquals metodu - Object + Object + booleanÜçüncü parametre testTransients anlamına gelir.
Örnek
Şöyle yaparız.
public class Address {
private String addressKey;
private String postalCode;
private String country;
...
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj, false);
}
...
}