Java:如何使用不同的equals定义执行列表操作?
我有两个通用POJO列表.我需要根据比较列表中POJO的不同方法在列表上执行一些设置操作.
例如,如果我的POJO具有以下结构:
public class GenericPojo { private String id; private String address; private String city; private String country; private String exTradetails; }
(与适当的吸气剂和制定者)
给定List1< GenericPojo>和List2< GenericPojo>,我怎么找到:
List1 – List2(如果只是ID相等,GenericPojo类相等)
List1和List2的相交(其中id,地址,城市,国家,但不是GenericPojo的exTradetails相等)
解决方法
如果你必须操纵你的控制,我会建议使用委托.这是我的尝试:
>创建RichList< T>封面实现List合同的列表,基于decorator pattern.
>创建EqualityChecker< T> inteface,使用单个方法`public boolean equal(T t1,T,t2).
>为您的通用pojo实现此接口两次:一次检查ID,另一次检查其他字段.
>添加您感兴趣的两种方法(设置减法和设置交集),但使用补充参数,即EqualityChecker< T>将为您进行相等测试的具体实例.
因此,对于已编写EqualityChecker的任何类型的对象,您可以将这两个操作添加到所有现有列表中.
进一步改进:您还可以编写默认的EqualityChecker< T>它只调用比较对象的equals方法.然后,您可以重载两个新操作以默认EqualityChecker.
原文地址:https://www.jb51.cc/java/128909.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。