java遍历实体类属性_java中遍历实体类属性和类型,并赋值和获取值

import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Date; /**  * 获取实体类型的属性名和类型  *  * @author kou  */ public class GetModelNameAndType {     public static void testReflect(Object model) throws SecurityException,             NoSuchMethodException, IllegalArgumentException,             IllegalAccessException, InvocationTargetException, InstantiationException     {         // 获取实体类的所有属性,返回Field数组         Field[] field = model.getClass().getDeclaredFields();         // 获取属性的名字         String[] modelName = new String[field.length];         String[] modelType = new String[field.length];         for (int i = 0; i < field.length; i++)         {             // 获取属性的名字             String name = field[i].getName();             modelName[i] = name;             // 获取属性类型             String type = field[i].getGenericType().toString();             modelType[i] = type;                          //关键。。。可访问私有变量             field[i].setAccessible(true);             //给属性设置             field[i].set(model,  field[i].getType().getConstructor(field[i].getType()).newInstance("kou"));             // 将属性的首字母大写             name = name.replaceFirst(name.substring(0, 1), name.substring(0, 1)                     .toUpperCase());             if (type.equals("class java.lang.String"))             {                 // 如果type是类类型,则前面包含"class ",后面跟类名                 Method m = model.getClass().getMethod("get" + name);                 // 调用getter方法获取属性值                 String value = (String) m.invoke(model);                 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());                 }             }         }     }     public static void main(String[] args)     {         try         {             testReflect(new VO());         }         catch (SecurityException e)         {             e.printStackTrace();         }         catch (IllegalArgumentException e)         {             e.printStackTrace();         }         catch (NoSuchMethodException e)         {             e.printStackTrace();         }         catch (IllegalAccessException e)         {             e.printStackTrace();         }         catch (InvocationTargetException e)         {             e.printStackTrace();         }         catch (InstantiationException e)         {             e.printStackTrace();         }     } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值