使用Java反射的两个对象之间的差异:如何?
对于审核日志,我需要知道两个对象之间的差异。使用Java反射的两个对象之间的差异:如何?,java,Java,对于审核日志,我需要知道两个对象之间的差异。 这些对象可能包含其他对象、列表、对象集,因此如果需要,所需的差异可能是递归的 是否已经有了使用反射(或其他)的api 提前谢谢 关于这是一个非常令人生畏的问题,需要尝试并普遍解决。您可以考虑配对访问者模式,它允许您用一个责任链模式添加对象的图形,这允许您将执行任务的责任分成多个对象,然后动态地将请求路由到正确的处理程序。 如果您这样做了,您将能够在每个类型的基础上生成简单、特定的差异化逻辑,而不需要一个单一的、庞大的类来处理所有的差异化任务。向树中添
这些对象可能包含其他对象、列表、对象集,因此如果需要,所需的差异可能是递归的 是否已经有了使用反射(或其他)的api 提前谢谢
关于这是一个非常令人生畏的问题,需要尝试并普遍解决。您可以考虑配对访问者模式,它允许您用一个责任链模式添加对象的图形,这允许您将执行任务的责任分成多个对象,然后动态地将请求路由到正确的处理程序。 如果您这样做了,您将能够在每个类型的基础上生成简单、特定的差异化逻辑,而不需要一个单一的、庞大的类来处理所有的差异化任务。向树中添加处理程序也很容易 最好的部分是,您仍然可以在“平面”对象(不是集合的对象,基本上只有属性)的责任链中有一个链接,这也是反射对您帮助最大的地方。如果您的“包罗万象”案例使用简单的基于反射的比较,并且您的“特殊”案例处理列表、字典和集合等内容,那么您将拥有一个灵活、可维护、廉价的解决方案 有关更多信息:
我想我已经晚了几年,无法为您的具体案例提供帮助,但为了完成,这里有一个项目链接:另请参见。Commons BeanUtils有一个这样的新提案:但还不清楚什么时候会是最终提案。