org.apache.commons.beanutils.ConvertUtils这个类的使用介绍,这个工具类的职能是在字符串和指定类型的实例之间进行转换。 
目前支持的类型有: 
java.lang.BigDecimal 
java.lang.BigInteger 
boolean and java.lang.Boolean 
byte and java.lang.Byte 
char and java.lang.Character 
java.lang.Class 
double and java.lang.Double 
float and java.lang.Float

int and java.lang.Integer

long and java.lang.Long

short and java.lang.Short

java.lang.String

java.io.File

java.net.URL 
java.sql.Date 
java.sql.Time 
java.sql.Timestamp 
这个类提供了两个功能:

1.将字符串转换为指定类型;

convert(java.lang.Object object)   

有点像toString()方法相似。

convert(java.lang.String str, java.lang.Class clazz)  

将字符串str转换为clazz的一个实例;如果失败的话,就以String的形式返回value。

convert(java.lang.String[] strs, java.lang.Class clazz)  

这个方法是对前一方法的加强版,将数组中的每个strs都进行转换,最后以Object返回。(数组也是Object啊) 
对他进行扩展后 可以在object和其他类型之间的转换,示例如下:

public class TestConvertUtil  extends org.apache.commons.beanutils.ConvertUtils {  //将object转化成int型  public static int intConvert(Object object){  String str = object==null?null:object.toString();  Object obj = org.apache.commons.beanutils.ConvertUtils.convert(str, Integer.class);  Integer i= (Integer)obj;  return i;  }  //将任意的Object转换成string  public static String stringConvert(Object object){  Object obj = org.apache.commons.beanutils.ConvertUtils.convert(object);  String string = (String) obj;  return string;  }  public static boolean booleanConvert(Object object){  String str = object == null?null:object.toString();  Object obj = org.apache.commons.beanutils.ConvertUtils.convert(str, Boolean.class);  boolean b =(Boolean)obj;  return b;  }  public static void main(String[] arg) {  System.out.println(intConvert("123"));  System.out.println(stringConvert(456.2));  System.out.println(booleanConvert("true"));  }
}  

BeanUtils的populate方法或者getProperty,setProperty方法其实都会调用convert进行转换

但Converter只支持一些基本的类型,甚至连Java.util.Date类型也不支持。而且它比较笨的一个地方是当遇到不认识的类型时,居然会抛出异常来。

对于Date类型,我参考它的sqldate类型实现了一个Converter,而且添加了一个设置日期格式的函数。

ConvertUtils.register(new DateLocaleConverter(), Date.class);

特别是在web项目中,如果没有注册日期的话,formbean中将不支持java.util.Date类型,并抛出异常。就是注册一下就可以用了!

例如:

ConvertUtils.register(new DateLocaleConverter(), Date.class);
convertUtils.register(new BooleanConverter(null), Boolean.class);
convertUtils.register(new LongConverter(null), Long.class);convertUtils.register(new IntegerConverter(null), Integer.class);
convertUtils.register(new DoubleConverter(null), Double.class);

ConvertUtils相关推荐

  1. BeanUtils API中使用ConvertUtils向BeanUtils注册一个日期转换器

    1 ConvertUtils.register(new Converter(){ 2 public Object convert(Class type, Object value){ 3 if(val ...

  2. ConvertUtils.register的作用

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

  3. ConvertUtils.register注册转换器

    当用到BeanUtils的populate.copyProperties方法或者getProperty,setProperty方法其实都会调用convert进行转换 但Converter只支持一些基本 ...

  4. ConvertUtils 的简单使用

    在用户登录系统中对日期的转换 转自:http://java-xb.iteye.com/blog/415380 org.apache.commons.beanutils.ConvertUtils这个类的 ...

  5. ConvertUtils的理解

    代码如下: ConvertUtils.register的使用是要配合BeanUtils:populate(复制同变量名).copyProperties(复制同变量名).getProperty.setP ...

  6. java算法例子_java算法小例子

    作为一个程序员,有时候我觉得自己都不适合,因为自己数学不好,算法不好,脑子不够灵活.而对于算法,感觉就像是数学题,总觉得很难.以前上学,在班里总有几个什么都不好,但唯独数学很厉害,真气人!面对难题时, ...

  7. BeanUtils威力和代价

    2019独角兽企业重金招聘Python工程师标准>>> BeanUtils: 威力和代价(转载综合) Apache Jakarta Commons项目非常有用.我曾在许多不同的项目上 ...

  8. Request To JavaBean(请求对象转换为JavaBean对象)

    背景:  经常要从request等对象取出值来赋入bean中,如果不用MVC框架的绑定功能的话,麻烦   一 参考资料  1 http://jc-dreaming.iteye.com/blog/563 ...

  9. 实战:一键生成前后端代码,Mybatis-Plus代码生成器让我舒服了

    前言 在日常的软件开发中,程序员往往需要花费大量的时间写CRUD,不仅枯燥效率低,而且每个人的代码风格不统一.MyBatis-Plus 代码生成器,通过 AutoGenerator 可以快速生成 En ...

最新文章

  1. shell函数的返回值不能大于255的问题
  2. ios 摇一摇不走响应方法_猫咪不和主人亲近?这几种方法让它变得黏人,赶都赶不走|猫|宠物猫|主人...
  3. 看到了一个 蒙特卡洛方法 随机数得出 圆周率的c++ 源码
  4. Spark Mllib里的如何对单个数据集用斯皮尔曼计算相关系数
  5. Css 分类 属性 选择器
  6. linux建模工具有哪些,linux uml 免费 建模工具
  7. Leecode 953. Verifying an Alien Dictionary[Easy]
  8. go 调用mysql存储过程_带输出参数的mysql存储过程并发调用问题
  9. NVIDIA显卡驱动的重装
  10. 全志F1c100s主线linux入坑记录 (2)芯片超频
  11. 就国内而言,读大学的意义是什么?
  12. 工业企业能耗在线监测系统建设应用及研究
  13. 前端骨架屏方案与实践
  14. 2019年京东面试题-洗咖啡杯问题【贪心和动态规划】
  15. java.lang.IllegalArgumentException: Receiver not registered
  16. v-if条件判断及v-show
  17. 如何设置select-option的多项起始默认值
  18. Q-Learning的学习及简单应用
  19. 科沃斯擦窗机器人擦不干净怎么办_科沃斯自动擦玻璃机器人怎么样?有人用过智能擦窗户机吗?好不好用呢...
  20. 【柜子设计】草图大师及插件AFU321安装

热门文章

  1. 栈详解(顺序栈和链栈)
  2. 论文阅读笔记:《Neural3D: Light-weight Neural Portrait Scanning via Context-aware Correspondence Learning》
  3. c++头文件iomanip.h中的setw、setprecision、setfill和setbase函数的使用
  4. c语言求字符串转换成双精度_C语言如何输出双精度浮点型数据
  5. 【数据挖掘】关联规则的术语及定义
  6. QT 如何实现QLabel的点击事件
  7. 三菱PLC通过CC LINK IE通讯控制2个三菱伺服的测试 程序,里面有JOG HOME,定位,适合你入门参考。包合IO规划,伺候参数,PLC程序。
  8. k8spod资源的基础管理操作
  9. https:/问题解析remote: Total 10021 (delta 0), reused 0 (delta 0), pack-reused 10021 Receiving objects: 1
  10. handler机制--Handler使用