注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

和申的个人主页

专注于java开发,1985wanggang

 
 
 

日志

 
 

简单的利用反射比较两个对象的方法  

2012-12-04 14:31:46|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

简单的利用反射判断两个对象是否值相同的工具方法

package com.shijing.test.util;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;



/**
* @author wanggang
* @version 2012/12/04
*/
public class ShijingTest {
public static final Logger logger = LoggerFactory.getLogger(ShijingTest.class);
public static <E> void complareAndPrint(E obj1 ,E obj2){
Class clazz1 = obj1.getClass();
Class clazz2 = obj2.getClass();
Method[] methods = clazz2.getDeclaredMethods();
StringBuilder sb = new StringBuilder();
StringBuilder sbDiff = new StringBuilder();
for(Method m:methods){
if(m.getName().startsWith("is") || m.getName().startsWith("get")){
m.setAccessible(true);
try{
Object ret1 = m.invoke(obj1);
Object ret2 = m.invoke(obj2);
boolean isEq = ret1 == null ? ret2 == null : ret1.equals(ret2);
sb.append("eq:").append(isEq).append(",");
sb.append(m.getName());
sb.append(",ret1:").append(ret1)
.append(",ret2:").append(ret2);
sb.append("\r\n");
if(! isEq){
sbDiff.append("----");
sbDiff.append("eq:").append(isEq).append(",");
sbDiff.append(m.getName());
sbDiff.append(",ret1:").append(ret1)
.append(",ret2:").append(ret2);
sbDiff.append("\r\n");
}
}catch(Exception ex){
logger.error("[ShijingTest-complareAndPrint]",ex);
}

}
}
System.out.println(sb);

System.out.println(sbDiff);
logger.warn("[ShijingTest-complareAndPrint]" +sb);
logger.error("[ShijingTest-complareAndPrint not equals]" +sbDiff);
}
/**
* @param args
*/
public static void main(String[] args) {
Object obj1 = new Object();
Object obj2 = new Object();
complareAndPrint(obj1,obj2);
}

}




和申的个人主页,1985wanggang,和申Large Visitor Globe

购物客


  评论这张
 
阅读(654)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016