/**
* 判断对象是否变化
*/
public boolean fieldEquals(Contract contract) {
try {
// 获取object的所有属性
PropertyDescriptor[] pds = Introspector.getBeanInfo(getClass()).getPropertyDescriptors();
for (PropertyDescriptor pd : pds) {
// 遍历获取属性名
String name = pd.getName();
//忽略属性
if("id".equals(name)){
continue;
}
// 获取属性的get方法
Method readMethod = pd.getReadMethod();
// 在oldObject上调用get方法等同于获得oldObject的属性值
Object oldValue = readMethod.invoke(this);
// 在newObject上调用get方法等同于获得newObject的属性值
Object newValue = readMethod.invoke(contract);
if (oldValue == null && newValue == null) {
continue;
}else if (oldValue == null || newValue == null) {
return false;
}
//时间用toString比较
if (!oldValue.toString().equals(newValue.toString())) {
return false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
java 判断对象是否变化
最新推荐文章于 2024-04-29 12:05:59 发布