我正在考慮在Java中使用BusinessObjects的Set
。我的意圖是,在每個集合中應該只有每個業務對象的一個實例,但是一個業務對象可以在多個集合中共享。所以,作爲一個例子:Java - equals和hashcode
BO1 - instance of BusinessObject1
BO11 - instance of BusinessObject1
BO2 - instance of BusinessObject2
這是正確的
[BO1,BO2]或[BO1]
但這不是 [BO1,BO11]
由於我想要確保這是強制執行的,我正在考慮指定一個像這樣的AbstractBusinessObject:
public abstract class AbstractBusinessObject {
@Override
public int hashCode() {
return this.getClass().getName().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj != null)
return this.getClass() == obj.getClass();
return false;
}
}
你認爲這是一個好主意嗎?
你是否真的希望只有在他們的課程基礎上,這些對象纔是平等的?否則,向類中添加一個屬性,比如「type」的實例變量可能更有意義。 – shortstuffsushi