比较Java中不同类的对象字段

我有两个对象,每个对象都有数十个字段:

Class1 {

int firstProperty;

String secondProperty;

...

}

Class2 {

int propertyOne;

String propertyTwo;

...

}

尽管某些字段的名称不同,但是它们应该具有相同的含义和目的,例如firstPropertypropertyOne。我想比较两个类的对象的“相似”字段实际上是否具有相同的值。最优雅的方法是什么?

回答:

如果有两个类的字段具有相似的含义,则可以考虑声明一个interface

Class1 implements MyInterface {

int firstProperty;

String secondProperty;

...

int getOne() {

return firstProperty;

}

String getTwo() {

return secondProperty;

}

}

Class2 implements MyInterface {

int propertyOne;

String propertyTwo;

...

int getOne() {

return propertyOne;

}

String getTwo() {

return propertyTwo;

...

}

并且interface具有默认实现isEqualTo

MyInterface {

int getOne();

String getTwo();

...

boolean isEqualTo(MyInterface that) {

return that != null &&

this.getOne() == that.getOne() &&

this.getTwo().equals(that.getTwo()) && //add null checks!

...;

}

}

isEqualTo被覆盖的风险-确保它永远不会发生。

以上是 比较Java中不同类的对象字段 的全部内容, 来源链接: utcz.com/qa/399907.html

回到顶部