Я пишу pojo, где я переопределяю hashcode и equals, Но мое условие для создания равных объектов имеет условие ИЛИ. В этом случае, как писать hashcode ???Переопределение hashcode с условием ИЛИ
К примеру, у меня есть POJO, имеющий три поля, как ааа, ГЭБ, КЧК и условия лечения равно есть ааа должны быть равны и либо ГЭБ или ссс должны быть равны .Я писал в равных переопределение раздел, но что писать в hashcode в этом случае ???
public class POJO {
private String aaa;
private String bbb;
private String ccc;
///How to use or condition here ???????
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((aaa == null) ? 0 : aaa.hashCode());
result = prime * result + ((bbb == null) ? 0 : bbb.hashCode());
return result;
}
//my condition is aaa and (bbb or ccc) should be equal
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
POJO other = (POJO) obj;
if (aaa == null) {
if (other.aaa != null)
return false;
} else if (!aaa.equals(other.aaa))
return false;
if (bbb == null || ccc == null) {
if (other.bbb != null || other.ccc != null)
return false;
//This is the main condition
} else if (!bbb.equals(other.bbb) || !ccc.equals(other.ccc))
return false;
return true;
}
public String getAaa() {
return aaa;
}
public void setAaa(String aaa) {
this.aaa = aaa;
}
public String getBbb() {
return bbb;
}
public void setBbb(String bbb) {
this.bbb = bbb;
}
public String getCcc() {
return ccc;
}
public void setCcc(String ccc) {
this.ccc = ccc;
}
}