有时候我们需要对两个对象的属性值进行一些比较操作,例如在做一些保存操作时判断是否有属性被修改等。
那么你可以将以下代码进行一些修改作为一个工具类来使用。
其中Pojo为你自己定义的对象类型,根据需求进行修改即可。
public static boolean contrastObj(Object obj1, Object obj2) {
boolean isEquals = true;
if (obj1 instanceof Pojo && obj2 instanceof Pojo ) {
Pojo pojo1 = (Pojo) obj1;
Pojo pojo2 = (Pojo) obj2;
List textList = new ArrayList<String>();
try {
Class clazz = pojo1.getClass();
Field[] fields = pojo1.getClass().getDeclaredFields();
for (Field field : fields) {
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
Method getMethod = pd.getReadMethod();
Object o1 = getMethod.invoke(pojo1);
Object o2 = getMethod.invoke(pojo2);
if (!o1.toString().equals(o2.toString())) {
isEquals = false;
textList.add(getMethod.getName() + ":" + "false");
} else {
textList.add(getMethod.getName() + ":" + "true");
}
}
} catch (Exception e) {
}
for (Object object : textList) {
System.out.println(object);
}
}
return isEquals;
}