java遍历对象的属性_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
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访问对象的属性和行为详细介绍
每一个对象都会有属于自己的属性和行为,下面的文章就对java访问对象的属性和行为做了一下详细的介绍. 对象的属性和行为在类当中体现为成员变量和成员方法,其中成员变量对应对象的属性,成员方法对应对象的行 ...
- 遍历和添加json对象的属性 和 遍历普通js对象的属性
1. 遍历 json 对象的属性 //定义json对象 var person= { name: 'zhangsan', pass: '123', fn: function(){ alert(this. ...
- 实例对象的属性和原型对象中的属性重名问题 神奇的原型链 继承 继承案例
实例对象的属性和原型对象中的属性重名问题 <!DOCTYPE html> <html lang="en"> <head><meta cha ...
- java父类引用子类属性_Java多态性详解——父类引用子类对象
面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据. 继承是为了重用父类代码,同时为实现多态性作准备.那么什么是多 ...
- java html对象属性_java中对象属性可以是另外一个对象或对象的参考
7.对象的属性可以是另外一个对象或对象的参考 通过这种方法可以迅速构建一个比较大的系统. class Motor { Light[] lights; Handle left, right; KickS ...
- java map对象排序输出_java实现对象的排序(List和Map)
java实现对象的排序(List和Map) List和Map的排序 在实际的开发当中,我们经常 在文件浏览的时候经常有多种浏览方式,按时间整箱排序,逆向排序,按大小正逆向排序 ,按 按价格正逆向排序, ...
- java中对象的生存期_Java中对象的生存周期
文章目录 JAVA对象的生存周期 1.创建阶段(Created) 为对象分配内存需要考虑的问题 2.应用阶段(In Use) 3.不可见阶段(Invisible) 4.不可达阶段(Unreachabl ...
- java input是关键字吗_Java中对象的串行化(Serialization)和transient关键字 - 金色阳光...
Java中对象的串行化(Serialization)和transient关键字: 对象的串行化(Serialization) 一.串行化的概念和目的 1.什么是串行化 对象的寿命通常随着生成该对象的程 ...
- java判断空对象为空_Java判断对象是否为空(包括null ,)的方法
本文实例为大家分享了Java判断对象是否为空的具体代码,供大家参考,具体内容如下 package com.gj5u.publics.util; import java.util.List; /** * ...
- java set循环取值_Java遍历Map和遍历Set
Java遍历Map public static void main(String[] args) { Map map = new HashMap(); map.put("1", & ...
最新文章
- 脚踏板USB接口与无线遥控连接方案论证
- 阿里云工业互联网平台开发样例
- Homebrew安装不要改hosts了,直接用这个国内源才爽!
- java中的图形界面编辑界面_第58节:Java中的图形界面编程-GUI
- Go 语言范围(Range)
- mysql 函数substring_index()
- #把函数当作参数传给另一个函数
- vue:axios二次封装,接口统一存放
- jquery 插件 国外
- 1.4.2 真正的建造者模式(3.2)
- Matlab图像处理系列2———空间域平滑滤波器
- 【锐捷交换机】清除密码
- Android TextView水平跑马灯
- 【翻译】图解Janusgraph系列-事务详解(Janusgraph Transactions)
- 5G新通话新在哪儿?全新技术带来通话变革
- 5G推动下,XR的需求“爆发”会来自B端还是C端?...
- tomcat上部署的solr的移植以及数据的备份与恢复
- 计算机教学音乐,计算机音乐的教学和应用研究
- fastTEXT入门自然语言处理NLP
- 主流相机RTSP地址格式
热门文章
- IE Tab Plus 安装设置说明
- matlab 模糊聚类改进,matlab模糊聚类
- n9 android rom,三星N935K官方固件rom刷机包_三星N935K线刷包_系统包下载
- BT656视频传输标准
- r语言调用python_如何在Rstudio中使用python 语言 (图文详解)
- 51单片机驱动——DS18B20
- linux中tailf命令详解,linux tailf命令详解
- Android本地音乐播放器(二)
- 含泪推荐四款超级好用的电脑软件,值得收藏
- 华中科技大学计算机组成原理教材,2017华中科技大学《计算机组成原理》考研套装资料...