介绍

BeanUtils是Apache Commons组件的成员之一, 主要用于简化JavaBean封装数据的操作。 ​

点击下载依赖 jar 包

使用

有如下 javabean :

package com.zze.bean;

import java.util.Date;

public class User {
    public User() {
    }

    public User(String name, Integer age, Date birthday) {
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    private String name;
    private Integer age;
    private Date birthday;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", birthday=" + birthday +
                '}';
    }
}

com.zze.bean.User

属性的取值赋值

@Test
public void test1() throws IllegalAccessException, NoSuchMethodException, InvocationTargetException {
    User user = new User();
    BeanUtils.setProperty(user, "name", "zhangsan");
    String name = BeanUtils.getProperty(user, "name");
    System.out.println(name); // zhangsan
    System.out.println(user); // User{name='zhangsan', age=null, birthday=null}
}

拷贝属性值

@Test
public void test2() throws InvocationTargetException, IllegalAccessException {
    User from = new User("zhangsan", 15, new Date());
    User to = new User();
    BeanUtils.copyProperties(to, from);
    System.out.println(to); // User{name='zhangsan', age=15, birthday=Mon Jan 14 12:17:48 CST 2019}
}

封装Map数据

@Test
    public void test3() throws InvocationTargetException, IllegalAccessException {
        // ConvertUtils.register(new DateLocaleConverter(),Date.class);
        // 自定义 String 到 Date 的转换器
        ConvertUtils.register(new Converter() {
            public Object convert(Class type, Object value) {

                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                try {
                    return simpleDateFormat.parse(value.toString());
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                return null;
            }
        }, Date.class);
        Map<String, String> userMap = new HashMap<>();
        userMap.put("name", "zhangsan");
        userMap.put("age", "18");
        userMap.put("birthday", "2018-1-1");
        User user = new User();
        BeanUtils.populate(user, userMap);
        System.out.println(user); // User{name='zhangsan', age=18, birthday=Mon Jan 01 00:00:00 CST 2018}
    }

java之beanutils使用的更多相关文章

  1. java框架BeanUtils及路径问题练习

    内省----->一个变态的反射    BeanUtils主要解决 的问题: 把对象的属性数据封装 到对象中.  使从文件中读取的数据往对象中赋值更加简单:   BeanUtils的好处:  1. ...

  2. java中 BeanUtils.copyProperties的用法

    BeanUtils提供了对java发射和自省API的包装,这里对BeanUtils.copyProperties的用法做一个小小的介绍. 通过函数名可以知道,copyProperties函数是对属性进 ...

  3. java使用BeanUtils封装file类型表单数据到一个对象中

    package com.cc.web.servlet; import java.io.FileOutputStream; import java.io.IOException; import java ...

  4. java 使用BeanUtils.copyProperties(Object source,Object target) 复制字段值

    BeanUtils.copyProperties(person, wsPerson);把person的字段值,复制给wsPerson // 只复制两个实体中,字段名称一样的 很有用的一个功能...

  5. [新手学Java]使用beanUtils控制javabean

    使用BeanUtils设置/读取属性的值以及默认支持的自动转化: @Test //使用BeanUtils设置/读取属性的值以及自动转化 public void test1() throws Illeg ...

  6. BeanUtils 读取数据

    前两篇文章都是关于setProperty的,下面来说一个关于getProperty 的小案例.如下: MyClass.java package beanutils; public class MyCl ...

  7. BeanUtils制作自定义的转换器

    一般来说,BeanUtils自带的Converter基本上可以满足我们在开发过程中的使用了,然而很多时候我们还是需要自定义一些转换器. MyBean.java package beanutils; i ...

  8. java开发中beancopy比较

    在java应用开发过程中不可避免的会使用到对象copy属性赋值. 1.常用的beancopy工具 组织(包) 工具类 基本原理 其他 apache PropertyUtils java反射     B ...

  9. Request和Response详解

    转自:http://zhidao.baidu.com/link?url=8BI0cjlcFdBSJKHTZlpo874eqtbTJoZfrh3miQgM_05RvSER8skPiBc1wSPZtXT8 ...

随机推荐

  1. Mybatis(五) 延迟加载和缓存机制(一级二级缓存)

    踏踏实实踏踏实实,开开心心,开心是一天不开心也是一天,路漫漫其修远兮. --WH 一.延迟加载 延迟加载就是懒加载,先去查询主表信息,如果用到从表的数据的话,再去查询从表的信息,也就是如果没用到从表的 ...

  2. Renascence架构介绍——文件夹

    这一系列文章是为个人项目作一个介绍.有兴趣的朋友能够关注一下. https://github.com/jxt1234/Renascence 先写个文件夹.以后按文件夹更新 1.自己主动编程体系设想 2 ...

  3. ie11开发者模式打开空白

    Internet选项——高级——取消  禁用脚本调试(Internet explorpr)

  4. oracle 优化or 更换in、exists、union all几个字眼

    oracle 优化or 更换in.exists.union几个字眼.测试没有问题! 根据实际情况选择相应的语句是.假设指数,or全表扫描,in 和not in 应慎用.否则会导致全表扫描.  sele ...

  5. pytest学习 一

    网上有很多这样的资料,学起来还是比较简单,为了将学到的东西应用于工程化,参考这样的样板代码: https://github.com/jeffmacdonald/pytest_test 将其下载到C:\ ...

  6. Netty WebSocket 开发

    代码: Server package netty.protocol.websocket.server; import io.netty.bootstrap.ServerBootstrap; impor ...

  7. git 中merge的用法

    git merge –no-ff 可以保存你之前的分支历史.能够更好的查看 merge历史,以及branch 状态. git merge 则不会显示 feature,只保留单条分支记录.

  8. java jdk 打开出错 Failed to load the JNI shared library

    ``` Failed to load the JNI shared library 解决方法 换了JDK 32位x86的 打开32位 eclipse 2017 oxygen 出现这个问题,修改 配置文 ...

  9. 使用Apache下poi创建和读取excel文件

    一:使用apache下poi创建excel文档 @Test /* * 使用Apache poi创建excel文件 */ public void testCreateExcel() { // 1:创建一 ...

  10. 安装svn客户端后,代码不能提交

    转载:https://jingyan.baidu.com/article/e8cdb32b3312f637052badde.html