Java-在不同类型的对象上实现相等

Dra*_*gan 1 java comparison equals

假设我有一个名为Customer的实体和一个名为CustomerMapper的帮助程序类,该类从表单中获取值。然后,我将此CustomerMapper发送到服务层,在其中从吸气剂中提取值并将新的Customer添加到数据库中。

但是,现在我需要遍历一个,List<Customer>并检查另一个中是否包含一个customerID ArrayList<CustomerMapper>。我读到.contains()方法在元素上调用.equals()。所以我想知道对我来说,在Customer上实现equals()是否正确,这样我将发送CustomeMapper类型的对象,而我将正在将customer.getId()与customerMapper.customerId()进行比较。

如果答案是否定的,请说明原因。

编辑:

这就是我想出的。我遍历了两位演讲嘉宾并创建了Map<Long, Customer>Map<Long, CustomerMapper>。基本上,我需要删除所有ID不包含在Map<Long, CustomerMapper>中的客户。现在我遍历Map<Long, Customer>并调用Map<Long, CustomerMapp>.contaisKey(currentElement).这是一个好的解决方案,因为这样我就有了三个for循环。

Kep*_*pil 5

equals()仅通过两个对象不相等来实现一个方法来做到这一点是没有意义的。

只需提取id并检查是否CustomerMapper有相同的对象即可。