package com.test.beanutils;

import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import org.junit.Test;
public class TestBeanUtils {
    /**BeanUtils.setProperty设置属性*/
    @Test
    public void test1() throws IllegalAccessException, InvocationTargetException{
        Person person = new Person();
        BeanUtils.setProperty(person, "age", 23);
        System.out.println(person.getAge());
    }
    /**BeanUtils.cloneBean克隆一个bean*/
    @Test
    public void test2() throws IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException{
        Person person = new Person("lucy", 18, "xxxxx@qq.com");
        Person cloneBean = (Person) BeanUtils.cloneBean(person);
        System.out.println(cloneBean.toString());
    }
    /**注册转换器*/
    @Test
    public void test3() throws IllegalAccessException, InvocationTargetException{
        ConvertUtils.register(new Converter() {
            @Override
            public Object convert(Class type, Object value) {
                String str = (String) value;
                if(null == value){
                    return null;
                }
                if(!(value instanceof String)){
                    System.out.println("格式不正确");
                    return null;
                }
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                try {
                    Date parse = sdf.parse(str);
                    return parse;
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                return null;
            }
        }, Date.class);
        Person person = new Person();
        BeanUtils.setProperty(person, "birthday", "2016-07-01");
        System.out.println(person.getBirthday());
    }
    /**将map转换成bean并注册转换器*/
    @Test
    public void test4() throws IllegalAccessException, InvocationTargetException{
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("name", "test");
        map.put("birthday", "2016-07-01");
        ConvertUtils.register(new DateLocaleConverter(), Date.class);
        Person person = new Person();
        BeanUtils.populate(person, map);
        System.out.println(person.getBirthday());
    }
    /**转换器*/
    @Test
    public void test5(){
        Integer num = (Integer) ConvertUtils.convert("123", Integer.class);
        System.out.println(num);
    }
}

160704、commons-beanutils.jar常用方法的更多相关文章

  1. Beanutils工具常用方法

      BeanUtils工具是一种方便我们对JavaBean进行操作的工具,是Apache组织下的产品.其主要目的是利用反射机制对JavaBean的属性进行处理. BeanUtils工具一般可以方便ja ...

  2. myeclipse的项目导入到eclipse下,com.sun.org.apache.commons.beanutils.BeanUtils不能导入

    com.sun.org.apache.commons.beanutils.BeanUtils这个包不能引入了怎么办自己下了个org.apache.commons的jar包了之后,改成import or ...

  3. 再续前缘-apache.commons.beanutils的补充

    title: 再续前缘-apache.commons.beanutils的补充 toc: true date: 2016-05-32 02:29:32 categories: 实在技巧 tags: 插 ...

  4. 报错处理 java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean

    java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean at org.apache.catalina.loade ...

  5. Apache Commons BeanUtils

    http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.2/apidocs/org/apache/commons/beanut ...

  6. 关闭log4j 输出 DEBUG org.apache.commons.beanutils.*

    2016-03-23 10:52:26,860 DEBUG org.apache.commons.beanutils.MethodUtils - Matching name=getEPort on c ...

  7. Apache Commons Beanutils对象属性批量复制(pseudo-singleton)

    Apache Commons Beanutils为开源软件,可在Apache官网http://commons.apache.org/proper/commons-beanutils/download_ ...

  8. Commons Beanutils使用setProperty() - 就是爱Java

    有时不能只依靠getter/setter操作bean,如:需要名字动态取得的,或是访问bean内的field,甚至是集合或数组内bean的field,利用反射机制对bean的field进行处理,这时候 ...

  9. org.apache.commons.beanutils.BeanMap简单使用例子

    一.org.apache.commons.beanutils.BeanMap; 将一个java bean允许通过map的api进行调用, 几个支持的操作接口: Object get(Object ke ...

随机推荐

  1. Microsoft Team Foundation Server 2010 安装 序列号 注册码(转载)

    安装过程: 一.安装操作系统 安装Windows 2008 R2简体中文版 二.准备安装过程中的需要的用户账户,并设置相应权限. 具体流程如下: 1.点击“开始”——“管理工具”——“计算机管理” 2 ...

  2. SSM整合开发流程

    我的spring是3.2,mybatis是3.4 1 引入user libarary,我的jar文件如下 //spring mvc core springMVC\spring-web-.RELEASE ...

  3. freeswitch 音 视频 支持的编码

    FreeSWITCH 支持很多的语音编解码:[13] PCMU – G.711 µ-law PCMA – G.711 A-law G.722 G.722.1 G.722.1c G.726 G.726  ...

  4. 点滴积累【C#】---验证码,ajax提交

    效果: 思路: 借用ashx文件创建四位验证,首先生成四位随机数字.然后创建画布,再将创建好的验证码存入session,然后前台进行button按钮将文本框中的值进行ajax请求到后台,和sessio ...

  5. linux学习笔记4--命令mkdir

    linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. mkdir命令用来创建目录.该命令创建由dirname命名 ...

  6. 错误 1 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead

    错误简介 在VS 2012 中编译 C 语言项目,如果使用了 scanf 函数,编译时便会提示如下错误: 原因是Visual C++ 2012 使用了更加安全的 run-time library ro ...

  7. PHP——smarty模板(做登录页面和主页面)

    denglu.php <?php include "init.inc.php"; $smarty->assign("action","ma ...

  8. Linux进程状态转换图

    Linux进程状态 Linux内核中的进程状态 ◆运行状态(TASK_RUNNING) 指正在被CPU运行或者就绪的状态.这样的进程被成为runnning进程.运行态的进程可以分为3种情况:内核运行态 ...

  9. logback参考配置

    logback配置 <?xml version="1.0" encoding="UTF-8"?> <configuration> < ...

  10. JAVA图像缩放处理

    http://www.blogjava.net/kinkding/archive/2009/05/23/277552.html ———————————————————————————————————— ...