高/等於@所有和THX提前,具體比較了List.contains(OBJ)
我目前不知道是否有我的情況有很大最佳實踐。
- 考慮你有一個對象。假設一個Customer類型的對象。
- 在客戶對象中,您有(n-1)個字段。
- 現在你正在通過eclipse上下文菜單實現hashCode和equals方法>> Sources >>生成hashCode()和equals()... 它使用所有(n-1)字段來實現。在一般情況下,這其實並不是一件壞事。
在特定的方法中,在一個單獨的服務類中增加額外的客戶>>列表myCustomers。
在這種方法中,我使用條件myCustomers.contains(specificCustomer)實現一個if-else的情況。
if (myCustomer.contains(specificCustomer)) {
// todo
} else {
// todo
}
所以list.contains(obj)在內部使用對象的equals方法。這是檢查列表是否包含對象的一般方法。
但是 在我的情況下,我有標準的hashCode,並且等於allready已經實現所有(n-1)字段。我想要的是使用/ .contains(obj)方法,它只檢查對象的特定字段,例如(n-5)字段。
我不想修改現有的hashCode和equals,因爲代碼的其他部分已經在使用這個。如果我這樣做,我無法預測事後的行爲。
另外我不想在Customer類中編寫一個單獨的方法,只在if-else條件中使用它。
那麼,有沒有人有一個想法,最佳實踐或偉大的模式,以完成這項工作?
嘗試不搜索最佳實踐,他們通常是基於意見的 – AdamSkywalker
我的意見爲基礎的解決方案:創建使用N-5字段的方法equalsXXX,創建迭代列表並使用equalsXXX方法檢查相等性的方法 – AdamSkywalker