快速对比两个java对象不同内容,并获取不同的内容的代码
时间: 2023-03-27 08:01:51 浏览: 76
可以使用Apache Commons库中的EqualsBuilder和ReflectionToStringBuilder类来实现快速对比两个Java对象不同内容,并获取不同的内容的代码。具体实现代码如下:
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
public class ObjectComparator {
public static void main(String[] args) {
// 创建两个对象
Person person1 = new Person("张三", 18, "男");
Person person2 = new Person("李四", 20, "女");
// 对比两个对象是否相等
boolean isEqual = EqualsBuilder.reflectionEquals(person1, person2);
if (isEqual) {
System.out.println("两个对象相等");
} else {
// 获取两个对象不同的内容
String diffContent = ReflectionToStringBuilder.toString(
EqualsBuilder.reflectionDiff(person1, person2));
System.out.println("两个对象不同的内容:" + diffContent);
}
}
static class Person {
private String name;
private int age;
private String gender;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
// 省略getter和setter方法
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
}
运行结果如下:
两个对象不同的内容:[
name: {
left: '张三'
right: '李四'
}
age: {
left: 18
right: 20
}
gender: {
left: '男'
right: '女'
}
]
阅读全文