• 13.BeanUtils组件-基础.md



    目录

    用途

    可以用来对JavaBean的各种增强操作

    基本属性的设置

    package per.liyue.code.beanutildemo;
    import java.util.Date;
    public class Person {
        private int id = 0;
        private String name = null;
        
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }  
    
    
    package per.liyue.code.beanutildemo;
    import java.lang.reflect.InvocationTargetException;
    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.locale.converters.DateLocaleConverter;
    import org.junit.Test;
    public class BeanUtilsDemo {
        @Test
        public void demo1() throws IllegalAccessException, InvocationTargetException {
            /*
             * 1.对JavaBean的操作
             */
            // 基本的对象属性设置
            Person p = new Person();
            p.setId(1);
            p.setName("张三");
            System.out.println("原始操作:" + p.getName());
            
            //1.BeanUtils两种方式设置属性
            Person pU = new Person();
            BeanUtils.copyProperty(pU, "id", 2);
            BeanUtils.setProperty(pU, "name", "李四");
            System.out.println("使用BeanUtils设置属性:" + pU.getName());
        }
    
    }  
    
    

    Map数据的拷贝

    package per.liyue.code.beanutildemo;
    import java.lang.reflect.InvocationTargetException;
    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.locale.converters.DateLocaleConverter;
    import org.junit.Test;
    public class BeanUtilsDemo {
        @Test
        public void demo1() throws IllegalAccessException, InvocationTargetException {
           
    
            //2.将Map中的数据拷贝到对象中
            Map<String, Object>map = new HashMap<>();
            //这里的key要保证和BeanUtils中拷贝的属性名称,类字段名称一致才可以!!
            map.put("name", "王五");
            Person pM = new Person();
            BeanUtils.populate(pM, map);
            System.out.println("使用BeanUtils拷贝Map数据:" + pM.getName());
        }
    
    }  
    
    

    对象的拷贝

    package per.liyue.code.beanutildemo;
    import java.lang.reflect.InvocationTargetException;
    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.locale.converters.DateLocaleConverter;
    import org.junit.Test;
    public class BeanUtilsDemo {
        @Test
        public void demo1() throws IllegalAccessException, InvocationTargetException {
    
    
            
            //.BeanUtils拷贝对象
            Person pC = new Person();
            //没有日期类型时候可以
            BeanUtils.copyProperties(pC, pU);
            System.out.println("使用BeanUtils拷贝对象:" + pC.getName());
        }
    
    }  
    
    

    转换器

    package per.liyue.code.beanutildemo;
    import java.util.Date;
    public class PersonDate {
        private String name = null;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        
        //日期类型
        private Date birthday;
        public Date getBirthday() {
            return birthday;
        }
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
        
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return "这个人名字:" + name + " 生日" + getBirthday();
        }
    }
    
    package per.liyue.code.beanutildemo;
    import java.lang.reflect.InvocationTargetException;
    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.locale.converters.DateLocaleConverter;
    import org.junit.Test;
    public class BeanUtilsDemo {
         
        @Test
        public void Demo2() throws IllegalAccessException, InvocationTargetException {
            /*
             * 日期类型转换
             */
            PersonDate pD = new PersonDate();
            String name = "赵二";
            String birthday = "1987-01-01";
            //注册类型转换器
            ConvertUtils.register(new DateLocaleConverter(), Date.class);
            //注册完成后拷贝属性
            /*
             * 注意:1.必须类的属性是public
             *      2.这里对于空字符串是没有处理的,需要自己额外加代码
             */
            if ((birthday == null) || ("".equalsIgnoreCase(birthday))) {
                return;
            }
            BeanUtils.copyProperty(pD, "name", name);
            BeanUtils.setProperty(pD, "birthday", birthday);
            System.out.println(pD);
            
        }
    }  
    
    
  • 相关阅读:
    luogu P1455 搭配购买
    浅谈筛素数
    luogu P1205 方块转换
    luogu P2241 统计方形
    luogu P1866 编号
    luogu P1042 乒乓球
    4.7清明考试(完蛋)
    LINUX 启动图形界面和查看运行级别
    密钥登录LINUX步骤
    服务命令只支持基本的LSB操作(启动、停止、重新启动、尝试重启、重新加载、强制重新加载、状态)。对于其他操作,请尝试使用systemctl。
  • 原文地址:https://www.cnblogs.com/bugstar/p/8512685.html
Copyright © 2020-2023  润新知