Java:如何使用不同的equals定义执行列表操作?
我有两个通用POJO列表.我需要根据比较列表中POJO的不同方法在列表上执行一些设置操作.
例如,如果我的POJO具有以下结构:
public class GenericPojo {
private String id;
private String address;
private String city;
private String country;
private String extraDetails;
}
Run Code Online (Sandbox Code Playgroud)
(与适当的吸气剂和制定者)
鉴于List1<GenericPojo>和List2<GenericPojo>,我将如何找到:
List1 - List2(GenericPojo如果ID相等,则类相等)
列表1和列表2的相交(其中id,address,city,country,但不是extraDetails的GenericPojo相等)
这里有两种不同的自定义比较器类吗?是否有任何库可以有效地处理这些操作,或者我应该尝试实现自己的操作?
如果您必须操纵超出您控制范围的类,我建议使用委托。这是我的尝试:
RichList<T>包装器。ListListEqualityChecker<T>使用单个方法“public boolean equal(T t1, T, t2)”创建一个接口。EqualityChecker<T>将为您执行相等测试的具体实例。因此,您可以将这两个操作添加到List您已为其编写的任何类型的对象的所有现有 s 中EqualityChecker。
进一步改进:您还可以编写一个默认值 EqualityChecker<T>,仅调用比较对象的 equals 方法。然后,您可以重载这两个新操作以默认EqualityChecker.
| 归档时间: |
|
| 查看次数: |
2063 次 |
| 最近记录: |