如何遍历java对象属性
使用场景
后台接收客户端传过来的值,经过相应的处理和操作,对数据库进行CURD操作。我们通常直接获取json对象,或创建一个dto对象映射json对象,并将值插入到固定的地方。如果客户端传递的参数特别多,前面的一对一的操作显然不太合适,这将编写大量看起来臃肿的代码。所以,更有效的方式是遍历json对象,数据表对象根据参数名称识别对应插入值的字段。
获取对象的所有属性
Field[] field = model.getClass().getDeclaredFields();
获取属性值
Method m = model.getClass().getMethod("get"+name); //获取getter方法
String value = (String) m.invoke(model);
设置属性值
Method m = model.getClass().getMethod("set"+name, new Class[] {String.class});
m.invoke(model,new Object[] {new String("new value")});
常用方法封装
/** * 根据属性名获取属性值 * */ private Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + fieldName.substring(1); Method method = o.getClass().getMethod(getter, new Class[] {}); Object value = method.invoke(o, new Object[] {}); return value; } catch (Exception e) { log.error(e.getMessage(),e); return null; } } /** * 获取属性名数组 * */ private String[] getFiledName(Object o){ Field[] fields=o.getClass().getDeclaredFields(); String[] fieldNames=new String[fields.length]; for(int i=0;i<fields.length;i++){ System.out.println(fields[i].getType()); fieldNames[i]=fields[i].getName(); } return fieldNames; } /** * 获取属性类型(type),属性名(name),属性值(value)的map组成的list * */ private List getFiledsInfo(Object o){ Field[] fields=o.getClass().getDeclaredFields(); String[] fieldNames=new String[fields.length]; List list = new ArrayList(); Map infoMap=null; for(int i=0;i<fields.length;i++){ infoMap = new HashMap(); infoMap.put("type", fields[i].getType().toString()); infoMap.put("name", fields[i].getName()); infoMap.put("value", getFieldValueByName(fields[i].getName(), o)); list.add(infoMap); } return list; } /** * 获取对象的所有属性值,返回一个对象数组 * */ public Object[] getFiledValues(Object o){ String[] fieldNames=this.getFiledName(o); Object[] value=new Object[fieldNames.length]; for(int i=0;i<fieldNames.length;i++){ value[i]=this.getFieldValueByName(fieldNames[i], o); } return value; }
参考:https://blog.csdn.net/special_programmer/article/details/79995491
如何遍历java对象属性相关推荐
- 遍历java对象属性_[Java教程]遍历对象属性
[Java教程]遍历对象属性 0 2016-09-12 13:00:03 初始化对象:var person = function(name){ this._name = name;}var grand ...
- java 对象视图框架_Stripes视图框架Java对象属性验证和prototype.js Ajax的测试
Stripes视图框架Java对象属性验证,它允许对字段设置是否必须填写,对数字大小进行限制等.我用prototype.js Ajax 将验证后的数据及时地展示出来,下面来看程序. 1.编写User实 ...
- jquery 遍历java对象的属性_用jquery each标签遍历java list对象
最近在做tms管理系统(物流管理软件),遇到这样一个场景: 运单对应多个货物信息(我们这里只对应3个货物信息,但大部分情况下,只有1个货物信息),我需要编辑也就是修改该运单,那么带出该运单一对多的货物 ...
- java对象属性如果为null,如何实现赋值空字符串
需求: 前人写的上传生成PDF,标题没有显示完全有null显示在上面 问题: 调用别人家接口不知道为null是哪个字段造成的 期望: 标题显示完整,不出现null 做法: 对实体类属性遍历,对所有为空 ...
- 遍历java对象中的属性
public static void Reflect(Object obj) throws NoSuchMethodException, IllegalAccessException, Illegal ...
- java对象属性的作用域类型_java 对象和类
类:类为对象定义属性和行为. 对象的定义:对象是代表现实世界可以明确标识的一个实体. 每个对象都有自己独特的标识.状态和行为. 一个对象的状态是由具体当前值的数据域来表示的. 一个对象的行为是由方法定 ...
- jquery 遍历java对象_jquery中object对象循环遍历的方法
一个朋友问对象如何转为数组,当我问他为啥要转得时候,他告诉我,数组可以用js循环遍历,而对象则不可以.其实呢,对象同样可以循环遍历的啊.不用转换也可以循环!说明你对js或者jquery的某些操作不是很 ...
- jquery 遍历java对象,js/jquery遍历对象和数组的方法分析【forEach,map与each方法】...
本文实例讲述了js/jquery遍历对象和数组的方法.分享给大家供大家参考,具体如下: JS forEach方法 arr[].forEach(function(value,index,array){ ...
- jquery 遍历java对象_jquery遍历数组、对象
1,for循环: var arr = new Array(13.5,3,4,5,6); for(var i=0;i arr[i] = arr[i]/2.0; } 2,for,in循环: var x v ...
最新文章
- Java项目:健身管理系统(Java+ssm+springboot)
- 基于数字移相信号发生器的频率相位差测量系统的FPGA实现
- 腾讯一面有感(移动开发岗位)
- Python学习笔记九:文件I/O
- win10主题更换_WIN10好用的小软件
- IBM人工智能项目Watson旧金山开设新总部
- Java读取Rinex 2.11格式的观测值o文件
- BugKu web题目(bp)弱密码top1000
- 安卓盒子root--包好
- r语言调用python_R语言与Python协同工作
- c语言intmain作用,c语言intmain()是什么意思
- bat批处理,变量不生效
- 个别网站无法访问,能ping通
- ruby-下载图片,根据图片URL下载到本地
- 手机是如何泄密个人隐私的
- Revit教程合集110部
- 小学计算机教室外墙文化建设,4款小学教室外墙布置图片 小学教室走廊班牌班级文化墙设计图片...
- python使用 pywin32 模块操作 excel,Python 操作 excel 系列之五
- record, packed record和变体记录
- CATIA怎么约束快捷键_CATIA怎么设置快捷键?