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

来源:互联网 发布:java简单小游戏 编辑:程序博客网 时间:2024/06/06 00:16
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("属性值为:空");                                   }                           }                   }           }   }

阅读全文
0 0
原创粉丝点击