java中遍历实体类属性和类型,属性值
2015-10-16 10:37
405 查看
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()); } } } }
相关文章推荐
- java 内存泄露 :堆溢出和非堆溢出
- JavaWeb-利用Enumeration获取初始化参数
- 用eclipse创建java web工程
- Imagga 图像识别技术API调用方法
- Mac系统下的Eclipse代码联想功能开启代码联想功能
- 在AWS EMR上运行Map Reduce的Java示例程序 及 操作小计
- struts2的namespace
- eclipse 方便快捷安装svn
- Eclipse使用技巧
- 从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0
- 基于Spring2.5.6搭建技术开发框架
- Java学习之二-Java反射机制
- Java IO
- 基于Netbeans的PHPUnit单元测试环境搭建
- eclipse中的maven web项目报错:org/codehaus/plexus/archiver/jar/JarArchiver
- ajax + struts2 return 404 Code
- Stanford NLP自然语序处理demo,附maven dependency
- java编程IO简单回顾和学习
- eclipse maven plugin 插件 安装 和 配置
- maven jdk 版本配置