我有一个对象,它本身有多个对象作为字段。我的问题是,我有两个此类对象,我想比较这两个对象。我知道我可以做 equals、comparator 等,但是有没有办法使用反射来获取对象的属性并进行比较。
例如,如果我有一个 Car 对象,它作为 wheels 对象,它有 tires 对象,它有 bolts 对象。请记住以上所有对象都是独立的而不是嵌套类。我如何比较 2 个汽车对象?
感谢任何帮助?
谢谢
最佳答案
Apache Commons Lang有一个 EqualsBuilder正是这样做的类(参见 reflectionEquals()
方法)
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
EqualsBuilder
还为特定字段的 null 安全比较提供了更明确的方法,这使得编写“适当的”(即非反射的)equals 方法不那么繁重。
关于java比较对象: using reflection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1520941/