Java遍历对象所有属性
2017-06-20 23:13
267 查看
要获取对象的所有属性可以使用
方法会返回一个
遍历这个数组几个遍历所有属性
注意使用这个方法会抛出4个异常
然后根据属性的类型选择执行对应的内容
具体执行的内容就是重点了
我们知道模型的属性都会有对应的getter和setter方法
只需要得到对应的getter和setter方法即可获取和设置属性
这里就需要用到
获得getter方法如下
例如参数是String类型的setter方法如下
getDeclaredFields()
方法会返回一个
Field数组
遍历这个数组几个遍历所有属性
注意使用这个方法会抛出4个异常
然后根据属性的类型选择执行对应的内容
public static void eachProperties(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 ",后面跟类名 ... } if(type.equals("class java.lang.Integer")){ ... } if(type.equals("class java.lang.Short")){ ... } if(type.equals("class java.lang.Double")){ ... } if(type.equals("class java.lang.Boolean")){ ... } if(type.equals("class java.util.Date")){ ... } } }
具体执行的内容就是重点了
我们知道模型的属性都会有对应的getter和setter方法
只需要得到对应的getter和setter方法即可获取和设置属性
这里就需要用到
getMethod方法
获得getter方法
方法有分带参数和不带参数,我们知道getter方法是不带参数的获得getter方法如下
Method m = model.getClass().getMethod("get"+name);
获得setter方法
如果是带参数的setter方法,就应该把参数的类型做封装成一个Class<?>泛型数组传入getMethod方法的第二个参数
例如参数是String类型的setter方法如下
Method m = model.getClass().getMethod("set"+name, new Class[] {String.class});
执行getter方法
String value = (String) m.invoke(model);
执行setter方法
m.invoke(model,new Object[] {new String("new value")}); from: http://zhenhappy.github.io/2015/10/26/Java/Java-Each-Properties/[/code]
相关文章推荐
- java中遍历一个对象的所有属性
- » 遍历JavaScript对象的所有属性 [Java堂]
- 遍历JavaScript对象的所有属性
- 遍历JavaScript对象的所有属性(js反射机制)
- java利用反射技术遍历某个对象的属性及属性值
- 遍历JavaScript对象的所有属性
- Java 遍历一个对象的属性 将非空属性赋值给另一个对象
- 用来遍历指定对象所有的属性名称和值
- as3遍历对象所有属性的方法
- Java遍历对象属性
- jsp遍历session值和Java代码获取所有系统属性
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- 在C#如何遍历一个对象的所有属性
- 遍历JavaScript对象的所有属性
- as3遍历对象所有属性的方法
- Javascript遍历JavaScript某个对象所有的属性名称和值的方法
- 写一个方法进行各种属性的更新,而不要每个界面设置改变都改变一个属性。就是点击应用或确定按钮时调用这个更新属性的方法,遍历所有(控制对象属性的)界面控件的状态(值),进行属性修改和刷新。
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- 在C#如何遍历一个对象的所有属性
- 遍历JavaScript对象的所有属性