objetos Compare de diferentes classes usando reflexão

jaudo:

Eu tenho dois objetos com os mesmos atributos. Não me pergunte por que, este é o código gerado e eu tenho que lidar com isso.

class Bean1 {
   int id;
}

class Bean2 {
   int id;
}

Eu quero comparar objetos de cada classe, sem escrever o código comparar para cada atributo. Esta discussão explica como comparar dois objetos, mas no meu caso isso falhar porque eles não são de instâncias da mesma classe.

Este código retorna false:

EqualsBuilder.reflectionEquals(new Bean1(1), new Bean2(1));

Existe outra maneira de comapre objetos e ignorar classes de objetos?

jaudo:

Eu finalmente fui capaz de fazer isso com Apache Common Lang ReflectionToStringBuilder , porque fornece uma ToStringStyle.NO_CLASS_NAME_STYLE opção.

Além disso, como eu estou usando-o com o teste JUnit, é útil porque se os objetos são differents, eu vou ser capaz de ver que o campo é diferente.

Assert.assertEquals(
   new ReflectionToStringBuilder(bean1, ToStringStyle.NO_CLASS_NAME_STYLE).toString(),
   new ReflectionToStringBuilder(bean2, ToStringStyle.NO_CLASS_NAME_STYLE).toString());

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=181366&siteId=1
Recomendado
Clasificación