java中如何遍历实体类的属性和数据类型以及属性值

来源:互联网 发布:淘宝官网购物 编辑:程序博客网 时间:2024/06/06 00:11
package com.walkerjava.test;  import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Date;  /***  * 遍历实体类的属性和数据类型以及属性值  *   * @author LiBaozhen  * @date 2013-1-4 上午10:25:02  * @company   * @version v1.3  * @see 相关类  * @since 相关/版本  */ public class ReflectTest {         public static void reflectTest(Object model) throws NoSuchMethodException,                         IllegalAccessException, IllegalArgumentException,                         InvocationTargetException {                 // 获取实体类的所有属性,返回Field数组                 Field[] field = model.getClass().getDeclaredFields();                 // 遍历所有属性                 for (int j = 0; j < field.length; j++) {                         // 获取属性的名字                         String name = field[j].getName();                         // 将属性的首字符大写,方便构造get,set方法                         name = name.substring(0, 1).toUpperCase() + name.substring(1);                         // 获取属性的类型                         String type = field[j].getGenericType().toString();                         // 如果type是类类型,则前面包含"class ",后面跟类名                         System.out.println("属性为:" + name);                         if (type.equals("class java.lang.String")) {                                 Method m = model.getClass().getMethod("get" + name);                                 // 调用getter方法获取属性值                                 String value = (String) m.invoke(model);                                 System.out.println("数据类型为:String");                                 if (value != null) {                                         System.out.println("属性值为:" + value);                                 } else {                                         System.out.println("属性值为:空");                                 }                         }                         if (type.equals("class java.lang.Integer")) {                                 Method m = model.getClass().getMethod("get" + name);                                 Integer value = (Integer) m.invoke(model);                                 System.out.println("数据类型为:Integer");                                 if (value != null) {                                         System.out.println("属性值为:" + value);                                 } else {                                         System.out.println("属性值为:空");                                 }                         }                         if (type.equals("class java.lang.Short")) {                                 Method m = model.getClass().getMethod("get" + name);                                 Short value = (Short) m.invoke(model);                                 System.out.println("数据类型为:Short");                                 if (value != null) {                                         System.out.println("属性值为:" + value);                                 } else {                                         System.out.println("属性值为:空");                                 }                         }                         if (type.equals("class java.lang.Double")) {                                 Method m = model.getClass().getMethod("get" + name);                                 Double value = (Double) m.invoke(model);                                 System.out.println("数据类型为:Double");                                 if (value != null) {                                         System.out.println("属性值为:" + value);                                 } else {                                         System.out.println("属性值为:空");                                 }                         }                         if (type.equals("class java.lang.Boolean")) {                                 Method m = model.getClass().getMethod("get" + name);                                 Boolean value = (Boolean) m.invoke(model);                                 System.out.println("数据类型为:Boolean");                                 if (value != null) {                                         System.out.println("属性值为:" + value);                                 } else {                                         System.out.println("属性值为:空");                                 }                         }                         if (type.equals("class java.util.Date")) {                                 Method m = model.getClass().getMethod("get" + name);                                 Date value = (Date) m.invoke(model);                                 System.out.println("数据类型为:Date");                                 if (value != null) {                                         System.out.println("属性值为:" + value);                                 } else {                                         System.out.println("属性值为:空");                                 }                         }                 }         } } 
原文链接:http://www.walkerjava.com/thread-740-1-1.html
原创粉丝点击