要获取对象的所有属性可以使用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/

Java遍历对象所有属性相关推荐

  1. java遍历一个类的属性名,java遍历对象属性

    java对象动态添加属性,Class对象和Java反射机制,java遍历对象属性,js对象动态添加属性 java 对象动态添加属性,Class对象和Java反射机制,java遍历对象属性,js对象动态 ...

  2. as3遍历对象所有属性的方法

    as3遍历对象所有属性的方法(包含Flex) 1.所有对象,包括静态属性和动态属性 ObjectUtil.getClassInfo(this._arr[0]).properties as Array ...

  3. java 遍历对象_java中some(),every()循环遍历,Object.getOwnPropertyNames()遍历对象的属性...

    由于java知识的应用具有一定的广泛性,所以它经常会应用到我们的日常使用当中.那么今天就为大家介绍一下java中some(),every()循环遍历,Object.getOwnPropertyName ...

  4. java遍历对象数组对象_js 遍历对象、数组

    一.遍历对象 1.使用Object.keys()遍历,返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性). var obj = {'0':'a','1':'b','2': ...

  5. java遍历对象属性_java开发中遍历一个对象的所有属性并set值 缓存优化

    今天技术之家陪你一起了解java开发中遍历一个对象的所有属性并set值 缓存优化: Java反射 1.创建缓存池,可以加快访问速度private static final Map> CACHE  ...

  6. java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...

    xml中加入了几条,为了方便查询时作为示例. 话不多说见代码注释: DTD文件:SwordTypeDefinition.dtd XML文件:SwordLib.xml SwordLibrary SYST ...

  7. java 遍历对象属性并赋值_遍历实体类属性并赋值

    import http://www.doczj.com/doc/82f2fb5228ea81c758f578f8.htmlng.reflect.Field; import http://www.doc ...

  8. java 打印对象所有属性_输出打印某个对象所有属性及属性值

    由于对象的属性值太多,又不想用Debug调试查看,自己还懒,于是上网搜搜,整理了一下代码 package com.port.tools; import java.lang.reflect.Field; ...

  9. java中RIGHT的值_java循环遍历, reduce(),reduceRight()方法和Object,keys遍历对象的属性...

    最近几年,随着高新技术的不断出现,各种编程软件也开始进入到人们的视野当中.今天就来为大家说一下java编程语言的基础知识,也就是java循环遍历, reduce(),reduceRight()方法和O ...

最新文章

  1. 051_原码反码补码概念
  2. django异常日志_5分钟教你学会Django系统错误监控
  3. AngularJS的学习--$on、$emit和$broadcast的使用
  4. 微机原理与接口技术(第2版)考点
  5. ffmpeg 截图 java_Java Web 中使用ffmpeg实现视频转码、视频截图
  6. Windows10 下搭建汇编语言开发环境( 利用 DOSBOX 和 MASM32 )
  7. 结合MSDN理解windows service 服务安装的三个类。
  8. 一图抵千言:带你快速学会 GoogLeNet 神经网络 | CSDN 博文精选
  9. 江苏图采上传自定义证件照
  10. 计算机系统基础-袁春风老师-mooc-第二章测试习题及解析
  11. 重装系统win10步骤和教程,win10怎么自己重装系统
  12. Unity3D资源包中没有Bouncy材质怎么办
  13. Am3358增加Uboot的logo显示 增加Uboot自定义命令控制LCD
  14. Preserving Prefix Integrity
  15. 论文笔记01——PoseCNN:A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes
  16. 福昕阅读器无法注释问题
  17. OO系统分析员之路--用例分析系列(2)--用例的类型与粒度
  18. 计算机网络基础基本知识
  19. python round_Python3 round() 函数
  20. 西瓜书学习笔记(一、绪论)

热门文章

  1. A*寻路算法的探寻与改良(三)
  2. loadrunner中创建唯一随机数
  3. oracle重新启动步骤
  4. OOM分析之问题定位(二)
  5. Openssl生成证书流程
  6. Application Architecture Guide 2.0 - CH 19 - Mobile Applications(5)
  7. 2014025687《嵌入式系统程序设计》第七周学习总结
  8. RMS 谈自由软件运动和后门
  9. 添加和删除行的能力table(能够编辑的表的内容)
  10. 关于在WebForm页面使用Ajax