common-beanutils包下反射获取bean属性值
2016-05-18 13:16
218 查看
最近在封装一个数据访问框架的时候,用到了很多反射获取实体值的方法。
最开始采用的是BeanUtils.describe(bean)
,但在插入数据库的经常报数据类型错误的异常。看了下源码,BeanUtils调用的是BeanUtilsBean的这个getNestedProperty方法,该方法在读取值之后,会再调用一次(getConvertUtils().convert(value));,进行类型转化成String。 因此BeanUtils.describe转化出来的Map的value都是String。
经过查阅,可以采用PropertyUtils类,调用PropertyUtils.describe(bean)方法。
这两个方法,基本上实现原理类似,内部代码很多都相同的,但在读取bean的某个属性的时候都是调用的某个类的getNestedProperty(bean,
name)方法。其实主要的区别就在这个方法中,PropertyUtils是调用的PropertyUtilsBean的这个方法,该方法读取属性值(调用getXxx方法)之后,value不做转化
。
最开始采用的是BeanUtils.describe(bean)
,但在插入数据库的经常报数据类型错误的异常。看了下源码,BeanUtils调用的是BeanUtilsBean的这个getNestedProperty方法,该方法在读取值之后,会再调用一次(getConvertUtils().convert(value));,进行类型转化成String。 因此BeanUtils.describe转化出来的Map的value都是String。
经过查阅,可以采用PropertyUtils类,调用PropertyUtils.describe(bean)方法。
这两个方法,基本上实现原理类似,内部代码很多都相同的,但在读取bean的某个属性的时候都是调用的某个类的getNestedProperty(bean,
name)方法。其实主要的区别就在这个方法中,PropertyUtils是调用的PropertyUtilsBean的这个方法,该方法读取属性值(调用getXxx方法)之后,value不做转化
。
相关文章推荐
- JAXB - XML Schema Types, Date and Time
- ListView的性能优化之convertView和viewHolder
- hjr-DSP:CMD文件
- 学会进程管理,人生迎来新高度,&, [Ctrl]-z, fg, bg, kill, killall, nohup
- 【wpf WebBrowser 清空网站的Cookie&Session 清空用户登录状态】
- Volley
- Spark性能相关参数配置详解-任务调度篇
- hibernate_detachedCateria_Disjunction(多条件or)
- MySQL导入.sql文件以及#1146 - Table 'hibernate.person_email' doesn't exist
- [剑指offer]删除链表中重复的结点
- 历年错题集2015
- cmd.ExecuteNonQuery()、cmd.ExecuteScalar()、cmd.ExecuteReader()
- 修改键值映射
- Material Design之CollapsingToolbarLayout 相关属性和方法介绍
- 腾讯微云下线同步盘功能
- 开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
- java实现抓取某公司官网新闻
- C/C++中的switch使用
- 枚举(enum)
- 创业的学费 99%不是在哈佛里交的