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

java beanUtils框架的更多相关文章

  1. BeanUtils框架浅析

    一.使用步骤: 1.添加jar包: commons-beanutils-1.8.0.jar commons-logging.jar 2.使用setProperty()方法对javabean设置属性值 ...

  2. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

  3. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  4. Java三大框架 介绍

    三大框架:Struts+hibernate+spring Java三大框架主要用来做WEN应用. Struts主要负责表示层的显示 Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作 ...

  5. 【集合框架】Java集合框架综述

    一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...

  6. Java 集合框架

    Java集合框架大致可以分为五个部分:List列表,Set集合.Map映射.迭代器.工具类 List 接口通常表示一个列表(数组.队列.链表 栈),其中的元素 可以重复 的是:ArrayList 和L ...

  7. Java集合框架之map

    Java集合框架之map. Map的主要实现类有HashMap,LinkedHashMap,TreeMap,等等.具体可参阅API文档. 其中HashMap是无序排序. LinkedHashMap是自 ...

  8. 22章、Java集合框架习题

    1.描述Java集合框架.列出接口.便利抽象类和具体类. Java集合框架支持2种容器:(1) 集合(Collection),存储元素集合 (2)图(Map),存储键值对.

  9. Java集合框架实现自定义排序

    Java集合框架针对不同的数据结构提供了多种排序的方法,虽然很多时候我们可以自己实现排序,比如数组等,但是灵活的使用JDK提供的排序方法,可以提高开发效率,而且通常JDK的实现要比自己造的轮子性能更优 ...

随机推荐

  1. android中PopupMenu的使用

    PopupMenu可以非常方便的在指定view的下面显示一个弹出菜单,类似于actionbar溢出菜单的效果.它的菜单选项可以来自于menu资源,因此非常方便.下面是在网上找的一个PopupMenu的 ...

  2. idea 配置简单web

    1.创建Facets 创建web的facets,可修改web的目录路径,如java目录 2.创建artifacts 创建web aplication exploded ,添加lib包到web-inf, ...

  3. 启动Memcached报错:/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory

    1.查找文件放在哪里 sudo find / -name libevent-2.1.so.6 发现放在/usr/local/lib/libevent-2.1.so.6下. 2.创建软链接 sudo l ...

  4. Javascript时间以及格式化秒

    var now = new Date(); timer = $.timer(timeout, function () {     var sec_num = Math.ceil((now.getTim ...

  5. python文章学习列表

    1.https://home.cnblogs.com/u/darkpig/feed/blog/ 这篇博主的系列文章 2.

  6. Guava Files 源码分析(一)

    Files中的工厂 Files类中对InputStream, OutputStream以及Reader,Writer的操作封装了抽象工厂模式,抽象工厂是InputSupplier与OutputSupp ...

  7. libuv之介绍

    本人是在研究linux下socket TCP/IP通讯时,用到了一些linux下的API,比如socket, connect, bind,listen, accept等等,简单写个点对点的通讯,直接用 ...

  8. STM32串口的设置和库函数的介绍

    串口设置的一般步骤可以总结为如下几个: 1) 串口时钟使能, GPIO时钟使能  2) 串口复位 3)GPIO 端口模式设置 4) 串口参数初始化  5) 开启中断并且初始化 NVIC(如果需要开启中 ...

  9. iOS开发-UITableView常用方法

    UITableView常用来展示数据,类似于Android中的ListView,相对于Android中的ListView而言,UITableView的实现是非常简单,继承UITableViewData ...

  10. 眼前一亮!十八款新潮而又独特的网站Header设计

    一个网站最重要的一个部分就是标题.这将是访问者的第一印象,设计出一个吸引眼球并且功能清晰导航还是比较容易的,但想出一个独特的header却总是困难的,这就是为什么我决定把那些对我有最影响的导航列出来了 ...