beanUtils是Apache觉得sun公司的内省不够爽,自己又开发了一套可以操作JavaBean的API

所以beanUtils是第三方jar包,使用beanUtils要导包:

在工程目录下新建一个文件夹“lib”,将下载下来的commons-beanutils包导入,beanutils中有个大jar包,还有collections和core两个jar包,后两个jar包加起来就组成了前者。我们把那个大点的包拿过来放lib下。 另外beanutils jar包在工作中需要一个log4j的日志记录器commons-logging.jar的支持,它也要被拿过来放lib下。

然后把这两个jar包,把他们Add to Build Path中,加到开发环境中去。eclipse中鼠标右键就可以做到。

代码:

import org.apache.commons.beanutil.BeanUtils;//导包写这个

……

Person p = new Person();

BeanUtils.setProperty(p,"name","110");//直接将Person的对象p中的私有的name属性设置成110,如果这里的name属性是个整型,那么BeanUtils可以自动将字符串转换成整型。转化只支持八种基本类型。如果想自动转换别的类型,比如Date,需要注册BeanUtils转换器,让它按照我们的规则转换一下。

注册日期转换器办法如下:

ConvertUtils.register(new Converter(){

  public Object convert(Class type,Object value){

    if(value == null){

      return null;

    }

    if(!(value instanceof String)){

      throw new ConversionException("只支持String类型转换");

    }

    String str = (String)value;

    if(str.trim().equals(""){

      return null;

    }

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

    try{

      return df.parse(str);

    }catch(ParseException e){

      throw new RuntimeExcepion(e);//异常链不能断,要把e弄出去让别人看

      //throw new ConversionException("转换失败");

    }

  }

}

,Date.class);

还可以这样:

ConvertUtils.register(new DateLocaleConverter(),Date.class);//这个转换器转空会报错。。

填充map到Bean:

Map<String,String> map = new HashMap<String,String>();

map.put("name","110");//属性不一致会填不进去,但是不会报错

map.put("属性","值");

Person bean = new Person();

BeanUtils.populate(bean,map);

更多内容请参阅第三方API

最新文章

  1. 通过IEnumerable和IDisposable实现可暂停和取消的任务队列
  2. 杭电ACM 1013 Digital Root
  3. Hadoop Browse the filesystem 无效处理
  4. encodeURIComponent=&gt;Uri.EscapeDataString
  5. CRT乱码问题
  6. JAVA获取apk包的package和launchable-activity名称(完善成EXE版)
  7. javascript arguments参数问题
  8. iOS-项目开发1-UIImage
  9. oracle 每个类别取几条的语法怎么写
  10. [LeetCode] 261. Graph Valid Tree _ Medium tag: BFS
  11. 用TableView写带特效的cell
  12. cocos2d-x开发记录:二,基本概念(动作,动画,坐标系统)
  13. n元一维向量向左循环移位i的几种算法
  14. python学习-序列排序
  15. 【记录一下】phpMyAdmin 4.5.0-beta1 发布,要求 PHP 5.5
  16. c++ two classes as each others&#39; friends
  17. 如何在官网下载java JDK的历史版本
  18. SC || 关于java迭代中修改迭代集合的操作
  19. BUPT复试专题—中序遍历序列(2013)
  20. node.js 写流 createWriteStream----由浅入深

热门文章

  1. springboot线程池的使用和扩展
  2. 使用 CoreTelephony 框架获取当前网络运营商
  3. 使用StringBuilder或StringBuffer简单优化
  4. 如何查看openshift Router的metrics
  5. C语言:通过指针函数输出二维数组中每个学生的成绩
  6. JSTORM使用笔记
  7. [转]VS2010快捷键
  8. Android循环ViewPager(二)
  9. Java基础(七):重写与重载
  10. PHP 使用mysql 与 mysqli 连接Mysql数据库