• 使用了BeanUtils的简单操作


    直接获取对象的某个值
    et.createCell(BeanUtils.getProperty(o, eh.getFieldName()));
    简单为对象某个字段赋值
    c.setCellValue(BeanUtils.getProperty(datas.get(i),headers.get(j).getFieldName()));

     beanUtils的底层是内省。下面是又一个小例子,实现了map和bean的映射注入

    package com.itcast.domain;
    
    public class Student {
        private String username;
        private String password;
        private int age;
        public Student() {
            super();
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public Student(String username, String password, int age) {
            super();
            this.username = username;
            this.password = password;
            this.age = age;
        }
        @Override
        public String toString() {
            return "Student [username=" + username + ", password=" + password
                    + ", age=" + age + "]";
        }
    
    }
    package com.itcast.test;
    
    import java.lang.reflect.InvocationTargetException;
    import java.util.HashMap;
    import java.util.Map;
    
    import org.apache.commons.beanutils.BeanUtils;
    import org.junit.Test;
    
    import com.itcast.domain.Student;
    import com.itcast.utils.CommonUtils;
    @SuppressWarnings({"rawtypes","unused"})
    public class Test01 {
        @Test
        public void fun1() throws Exception{
            
            Class cla=Class.forName("com.itcast.domain.Student");
            Object stu=cla.newInstance();
            
            BeanUtils.setProperty(stu, "username", "guodaxia");
            BeanUtils.setProperty(stu, "password", "12345");
            BeanUtils.setProperty(stu, "age", "21");//这个类会自动进行类型转换注入
            
            //System.out.println(stu);
            
            int age=Integer.valueOf(BeanUtils.getProperty(stu, "age"));//getProperty得到的都是String类型
            System.out.println(age);
        }
        /*
         *把map中的属性直接封装到一个bean中
         *
         * Map:{"username":"zhangsan","password","123"}
         * 我们要把map的数据封装到一个javaBean中,要求map的key域bean的属性名相同!
         */
        @Test
        public void fun2() throws Exception{//将Map的内容直接写入一个bean中
            Map<String,String> map=new HashMap<String,String>();
            map.put("username", "guodaxia");
            map.put("password","961012gz");
            map.put("age", "21");
            
            Student stu=new Student();
            BeanUtils.populate(stu, map);
            System.out.println(stu);
        }
        
        @Test
        public void fun3(){
            Map<String,String> map=new HashMap<String,String>();
            map.put("username", "guodaxia");
            map.put("password","961012gz");
            map.put("age", "21");
            
            Student stu=CommonUtils.toBean(map,Student.class);
            System.out.println(stu);
        }
    }
    package com.itcast.utils;
    
    import java.util.Map;
    import java.util.UUID;
    
    import org.apache.commons.beanutils.BeanUtils;
    
    public class CommonUtils {
        /**
         * 生成不重复的32位长的大写字符串
         * @return
         */
        public static String uuid(){
            return UUID.randomUUID().toString().replace("-", "").toUpperCase();
        }
        
        /**
         *  把map转换成指定类型的javabean对象
         * @param map
         * @param clazz
         * @return
         */
        public static <T> T toBean(Map<String, String> map,Class<T> clazz){
            
            try {
                T bean = clazz.newInstance();
                BeanUtils.populate(bean, map);
                return bean;
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            
        }
    }
  • 相关阅读:
    安卓基础值之Intent
    输入值/表单提交参数过滤有效防止sql注入的方法
    一致性hash
    linux授权某个用户对某个目录有读写的权限
    mysql分区功能详细介绍,以及实例
    SVN分支与主干
    solr查询
    mysql-proxy做客户端连接转发【外网访问内网mysql】
    liunx 下安装 php_screw 扩展 以及报错处理
    邮件发送
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5662949.html
Copyright © 2020-2023  润新知