嗨@ all and thx提前,
我目前想知道我的情况是否有一个很好的最佳实践。
在特定方法中的单独服务类中,您有一个客户列表>>列出myCustomers。
在这个方法中,你用条件myCustomers.contains(specificCustomer)实现if-else的情况。
if (myCustomer.contains(specificCustomer)) {
// todo
} else {
// todo
}
因此list.contains(obj)在内部使用对象的equals方法。这是检查列表是否包含对象的一般方法。
BUT 在我的情况下,我已经使用标准hashCode并且等于已经用所有(n-1)个字段实现。我想要的是使用/ .contains(obj)方法,它只检查对象的特定字段,例如(n-5)个字段。
我不想调整现有的hashCode和equals,因为代码的其他部分已经使用了这个。如果我这样做,我无法预测之后的行为。
此外,我不想在Customer类中编写单独的方法,只在if-else-condition中使用它。
那么,有没有人有想法,最佳实践或伟大模式来完成这项工作?
答案 0 :(得分:0)
您需要使用特定的业务逻辑(n-5字段等于),因此您必须在某处使用特定的代码。最简单的想法是使用自定义方法替换标准contains
调用,该方法遍历列表并使用自定义等于逻辑检查是否存在匹配项。如果您需要在更多地方使用此版本的equals,则可以将其提取到单独的实用程序或服务类中。