Java遍历对象所有属性
要获取对象的所有属性可以使用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遍历对象所有属性相关推荐
- java遍历一个类的属性名,java遍历对象属性
java对象动态添加属性,Class对象和Java反射机制,java遍历对象属性,js对象动态添加属性 java 对象动态添加属性,Class对象和Java反射机制,java遍历对象属性,js对象动态 ...
- as3遍历对象所有属性的方法
as3遍历对象所有属性的方法(包含Flex) 1.所有对象,包括静态属性和动态属性 ObjectUtil.getClassInfo(this._arr[0]).properties as Array ...
- java 遍历对象_java中some(),every()循环遍历,Object.getOwnPropertyNames()遍历对象的属性...
由于java知识的应用具有一定的广泛性,所以它经常会应用到我们的日常使用当中.那么今天就为大家介绍一下java中some(),every()循环遍历,Object.getOwnPropertyName ...
- java遍历对象数组对象_js 遍历对象、数组
一.遍历对象 1.使用Object.keys()遍历,返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性). var obj = {'0':'a','1':'b','2': ...
- java遍历对象属性_java开发中遍历一个对象的所有属性并set值 缓存优化
今天技术之家陪你一起了解java开发中遍历一个对象的所有属性并set值 缓存优化: Java反射 1.创建缓存池,可以加快访问速度private static final Map> CACHE ...
- java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...
xml中加入了几条,为了方便查询时作为示例. 话不多说见代码注释: DTD文件:SwordTypeDefinition.dtd XML文件:SwordLib.xml SwordLibrary SYST ...
- java 遍历对象属性并赋值_遍历实体类属性并赋值
import http://www.doczj.com/doc/82f2fb5228ea81c758f578f8.htmlng.reflect.Field; import http://www.doc ...
- java 打印对象所有属性_输出打印某个对象所有属性及属性值
由于对象的属性值太多,又不想用Debug调试查看,自己还懒,于是上网搜搜,整理了一下代码 package com.port.tools; import java.lang.reflect.Field; ...
- java中RIGHT的值_java循环遍历, reduce(),reduceRight()方法和Object,keys遍历对象的属性...
最近几年,随着高新技术的不断出现,各种编程软件也开始进入到人们的视野当中.今天就来为大家说一下java编程语言的基础知识,也就是java循环遍历, reduce(),reduceRight()方法和O ...
最新文章
- 051_原码反码补码概念
- django异常日志_5分钟教你学会Django系统错误监控
- AngularJS的学习--$on、$emit和$broadcast的使用
- 微机原理与接口技术(第2版)考点
- ffmpeg 截图 java_Java Web 中使用ffmpeg实现视频转码、视频截图
- Windows10 下搭建汇编语言开发环境( 利用 DOSBOX 和 MASM32 )
- 结合MSDN理解windows service 服务安装的三个类。
- 一图抵千言:带你快速学会 GoogLeNet 神经网络 | CSDN 博文精选
- 江苏图采上传自定义证件照
- 计算机系统基础-袁春风老师-mooc-第二章测试习题及解析
- 重装系统win10步骤和教程,win10怎么自己重装系统
- Unity3D资源包中没有Bouncy材质怎么办
- Am3358增加Uboot的logo显示 增加Uboot自定义命令控制LCD
- Preserving Prefix Integrity
- 论文笔记01——PoseCNN:A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes
- 福昕阅读器无法注释问题
- OO系统分析员之路--用例分析系列(2)--用例的类型与粒度
- 计算机网络基础基本知识
- python round_Python3 round() 函数
- 西瓜书学习笔记(一、绪论)