public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
Field[] field = model.getClass().getDeclaredFields(); //获取实体类的所有属性,返回Field数组
for(int j=0 ; j<field.length ; j++){ //遍历所有属性
String name = field[j].getName(); //获取属性的名字
System.out.println("attribute name:"+name);
name = name.substring(0,1).toUpperCase()+name.substring(1); //将属性的首字符大写,方便构造get,set方法
String type = field[j].getGenericType().toString(); //获取属性的类型
if(type.equals("class java.lang.String")){ //如果type是类类型,则前面包含"class ",后面跟类名
Method m = model.getClass().getMethod("get"+name);
String value = (String) m.invoke(model); //调用getter方法获取属性值
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Integer")){
Method m = model.getClass().getMethod("get"+name);
Integer value = (Integer) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Short")){
Method m = model.getClass().getMethod("get"+name);
Short value = (Short) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value); }
}
if(type.equals("class java.lang.Double")){
Method m = model.getClass().getMethod("get"+name);
Double value = (Double) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Boolean")){
Method m = model.getClass().getMethod("get"+name);
Boolean value = (Boolean) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.util.Date")){
Method m = model.getClass().getMethod("get"+name);
Date value = (Date) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value.toLocaleString());
}
}
}
}

最新文章

  1. 一些VS2013下使用QT和MFC的错误解决方案
  2. python之初级学习
  3. 何解決 LinqToExcel 發生「無法載入檔案或組件」問題何解決 LinqToExcel 發生「無法載入檔案或組件」問題
  4. 谈谈jQuery之绑定事件
  5. css3 transition effect(其它效果)
  6. css3 animation 实现环形路径平移动画
  7. MyEclipse常用设置
  8. jeditable参数详解
  9. 局部化原理(Laplace渐进估计方法)
  10. TeeChart的最小步长和最大步长
  11. [每日一题] OCP1z0-047 :2013-08-01 正则表达式--- REGEXP_REPLACE 函数
  12. ASP.NET Web API 基础篇1
  13. 第七届蓝桥杯javaB组真题解析-生日蜡烛(第二题)
  14. python做数据驱动
  15. 如何快速将一个list&lt;a&gt;集合中的部分字段值组合成新的的list&lt;b&gt;部分*
  16. 【blog】SpringBoot如何搭建聚合项目
  17. dubbo系列二:dubbo常用功能总结
  18. 包的作用域(public、private)
  19. Web Api:基于RESTful标准
  20. 我的常用笔记(GetAndroid,ADBDemo,GetSJ,GetTB)

热门文章

  1. HDU 1231.最大连续子序列-dp+位置标记
  2. NOIP2012 D2 T2借教室
  3. Kail Linux渗透测试教程之免杀Payload生成工具Veil
  4. php获取当前域名、主机、URL、端口、参数、网址、路径、代理等【转】
  5. [BZOJ2878][NOI2012]迷失游乐园(环套树DP+概率)
  6. POJ3233 Matrix Power Series 矩阵乘法
  7. 【动态规划/多重背包问题】POJ1014-Dividing
  8. bzoj 1045
  9. bzoj 1598: [Usaco2008 Mar]牛跑步 -- 第k短路,A*
  10. bzoj 1911: [Apio2010]特别行动队 -- 斜率优化