Java中两种POJO的比较

Java中两种POJO的比较,java,equals,comparator,comparable,Java,Equals,Comparator,Comparable,我有两个具有多个属性的对象。请注意,其中一个对象是通过Db->JAXB路由(从一些XML模式)提供给我的,因此我无法在此基础上实现Comparator和Comparable。我之所以这么说,是因为我过去曾使用Comparable和Comparator来比较两个对象在多个属性上的相等性,但不幸的是无法做到这一点 想象一下 Class A { String value1; String value2, ... String valueN; } Class B {

我有两个具有多个属性的对象。请注意,其中一个对象是通过Db->JAXB路由(从一些XML模式)提供给我的,因此我无法在此基础上实现Comparator和Comparable。我之所以这么说,是因为我过去曾使用Comparable和Comparator来比较两个对象在多个属性上的相等性,但不幸的是无法做到这一点

想象一下

Class A {
    String value1;
    String value2,
    ...
    String valueN;
}

Class B {
    String bVal1;
    String bVal2;
    String bVal3,
    String bValN;
}
B类具有A不具有的额外属性。这些对象不完全相同

我一直在比较:

getBVal1().equals(getValue1()) (Have omitted getters from classes)
getBVal2.equals(getVlue2())
....
就性能而言,最有效的方法是什么。
两个对象最多可以有20个字符串/int类型的属性。

您可以使用java Reflection值计数是否始终相同?如果是这样:为什么oyu有两个不相关的类?一个来自XML模式->POJO,另一个是从数据库检索的POJO(当然,在这个过程中通过其他API进行转换)。。。所以基本上我从一些API调用中得到ObjectB,这些API调用到DB,使用一些生成的机制创建POJO。我需要对象A,因为我从B中过滤属性,不能在API中发送回A。您需要一个位置来维护两个不同类之间的属性映射。您所遵循的方法是高效且类型安全的。您可以将此代码保存在单独的实用程序类中。谢谢,阿米特。因此,从性能角度来看,我所采用的比较两个对象的方法应该是好的,因为在实现comparator/comparable不是一个可行的选项的情况下,似乎没有其他更好的方法来比较两个对象的属性。