当用到BeanUtils的populate、copyProperties方法或者getProperty,setProperty方法其实都会调用convert进行转换
但Converter只支持一些基本的类型,甚至连java.util.Date类型也不支持。而且它比较笨的一个地方是当遇到不认识的类型时,居然会抛出异常来。
这个时候就需要给类型注册转换器。比如: 意思是所以需要转成Date类型的数据都要通过DateLocaleConverter这个转换器的处理。
ConvertUtils.register(new DateLocaleConverter(), Date.class);
示例:

import java.util.Date;public class Person {private String name;private int age;private Date birth;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}
}

test1没有给Date注册转换器,抛出ConversionException异常,test2没有异常

@Testpublic void test1() throws Exception {Map map = new HashMap();map.put("name", "xiazdong");map.put("age", "20");map.put("birth", "2010-10-10");Person p = new Person();BeanUtils.populate(p, map);System.out.println(p.getAge());System.out.println(p.getBirth().toLocaleString());}
@Testpublic void test2() throws Exception {Map map = new HashMap();map.put("name", "xiazdong");map.put("age", "20");map.put("birth", "2010-10-10");ConvertUtils.register(new DateLocaleConverter(), Date.class);Person p = new Person();BeanUtils.populate(p, map);System.out.println(p.getAge());System.out.println(p.getBirth().toLocaleString());}

ConvertUtils除了给指定类型注册转换器外,还可以将数据转换为指定类型

String[] values = new String[]{};
(long[])ConvertUtils.convert(values, long.class);

ConvertUtils.register注册转换器相关推荐

  1. 【途牛旅游项目】03 - 注册功能实现(aJax提交,正则表达式判断,BeanUtils封装和注册转换器)

    文章目录 注册功能分析图解 实现样式截图 实现注册功能 1. 创建注册业务的测试方法 2. 创建业务层UserService的注册方法 3. 创建dao层接口方法 4. 创建dao的映射文件xml 5 ...

  2. ConvertUtils.register的作用

    http://blog.csdn.net/pangjianjava/article/details/7707279 BeanUtils的populate方法或者getProperty,setPrope ...

  3. 给beanutils注册转换器

    将一个String类型的转化为Date类型的. ConvertUtils.register(new Converter(){@Overridepublic Date convert(Class typ ...

  4. Python中的Register(注册器)模块,Registry(注册机制)的讲解及示例

    文章目录 前言 为什么使用`Register`或`Registry`? `Register`机制怎么用? 定义`Register` 使用`Register` 使用装饰器注册模块 将Register实例 ...

  5. 第7.21节 Python抽象类—register注册虚拟子类

    上两节介绍了Python抽象类的真实子类的定义和使用,本节介绍另一种抽象类的实现方法:虚拟子类方法. 一.    相关概念 虚拟子类是将其他的不是从抽象基类派生的类"注册"到抽象基 ...

  6. Django幕学项目中邮箱注册Register注册新浪邮箱时,能注册成功,但是邮箱接收不到邮件的问题

    视频教程上用户注册功能view的代码是: class RegisterView(View):# get方法直接返回页面 def get(self, request):register_form = R ...

  7. python django admin.site.register注册应用

  8. 黑马程序员_Java高新技术3(框架,JavaBeans与内省(Introspector)) - 伊秋

    1.Java框架(frame) /* 通俗例子:我做房子(框架)卖给用户住,由用户自己安装门窗和空调(用户自定义类/用户自定义其它信息)用户需要使用我的房子(框架),把符合框架中结构的门窗插入进我提供 ...

  9. 初级Java学习笔记总结

    java高并发解决方案:     1.页面静态:静态访问消耗的资源少             信息录入然后生成静态页面以供访问     2.数据库集群和库表散列             主-从数据库关 ...

最新文章

  1. EOSIO 转帐详解
  2. 类型转换操作符:static_cast, dynamic_cast, const_cast, reinterpret_cast.
  3. Android 检查版本更新 Server后台下载
  4. js 隐藏滚动条_轻量级 React.js 虚拟美化滚动条组件RScroll
  5. php和mysql防伪网站源码,2015年最新php+mysql防伪查询程序源码微信认证查询含7套模板...
  6. The field file exceeds its maximum permitted size of 1048576 bytes
  7. 10张图带你彻底搞懂限流、熔断、服务降级
  8. 好用的网页在线客服工具
  9. 使用Jquery+bootstrap无限级菜单树
  10. 查看linux磁盘信息,linux下查看硬盘型号等信息
  11. Vi IMproved
  12. C#工控上位机实例_南京物流仓库【仓库物流】_智能云仓储库存wms管理分配货_电子标签价签拣货系统_工控erp上位机软件开发设计...
  13. 第6章---机器人系统仿真
  14. Mediakit报告设备商的空间不足以执行此操作的纯MAC解法
  15. 如何用自己的笔记本建wifi热点~~~
  16. Python 自动化办公
  17. 用Python绘制各国新冠肺炎确诊病例发展趋势图
  18. 科大讯飞为AI生态砸了10.24亿,胡郁本人做了以下回应
  19. matlab编写扫雷,【matlab编程】Matlab版扫雷
  20. 中科蓝汛 GPIO操作

热门文章

  1. 三大运营商手机号段正则表达式
  2. django2.0 快速实现注册
  3. 3600000毫秒等于多少小时_科学家解密!你知道月球上一天等于地球上多久吗?...
  4. 微商小程序加人加粉推广平台二维码
  5. 第105篇自嗨日记(扶摇生财思维)
  6. 复旦大学2017--2018学年第二学期(17级)高等代数II期末考试第六大题解答
  7. 计算机专业生自荐信范文,计算机专业实习生自荐信范文
  8. DevExpress GridView 列自定义汇总CustomSummaryCalculate——时间点汇总计算
  9. 如何解析域名,域名A记录解析方法注意事项
  10. 【STM32H7】第4章 RTX5操作系统移植(MDK AC5)