最近项目中,反复需要用到比较两个Bean是否全等的情况,许多人都是一个元素一个元素的比下去,效率太低了。于是写了一个用于比较两个同构Bean的函数与大家分享,若有什么更好的办法也请不吝赐教。
/**
* 比较两个Bean中所有元素是否全等,是返回True,有一个不等则返回False<br/>
* 参数的位置和结果无关
* @param obj1 第一个Bean
* @param obj2 第二个Bean
* @return 是否全等的boolean值
*/
private boolean compareBeans(Object obj1, Object obj2) {
if((null == obj1 && null != obj2) || (null != obj1 && null == obj2)) {
return false;
} else if(null == obj1 && null == obj2){
return true;
}
Field[] fieldArr1 = obj1.getClass().getDeclaredFields();
Field[] fieldArr2 = obj2.getClass().getDeclaredFields();
if(fieldArr1.length != fieldArr2.length) {
return false;
} else {
Field field1, field2;
String typeName1, typeName2;
Object tmpObj1, tmpObj2;
for(int i = 0; i < fieldArr1.length; i&#