java基础 ---- JavaBean, BeanUtils工具类

java基础 ---- BeanUtils

BeanUtils的理解概述:

  • JavaBean是符合标准格式的Java类的统称。 要求:
    1. 类必须被public修饰
    2. 必须提供空参的构造器
    3. 成员变量必须使用private修饰
    4. 提供公共setter和getter方法
  • BeanUtils工具是apache提供的用于操作JavaBean的API,BeanUtils把JavaBean常规操作封装成方法的便利性体现在:如果原生java代码有多行,BeanUtils只需要调用对应方法一句话就行了;如果原生java也只是一句代码的事,BeanUtils方法只要改下参数就可以操作不同的JavaBean对象。
  • BeanUtils在设置或者获取成员变量的值时,通过属性对应的set(),get()方法完成。属性不直接等同于成员变量,而是setter和getter方法截取后的产物例如:getUsername() --> Username--> username  。一般请情况下属性名与成员变量名称与属性名相等。

JavaBean的使用概述:

 BeanUtils类有静态方法:
-void setProperty(Object bean,String name,Object value);执行属性为name的set方法,参数为value。
-void getProperty(Object bean,String name);执行属性为name的get方法。
-void populate(Object obj , Map map):将map集合的键值对信息,封装到对应的JavaBean对象中

javabean的测试代码:


/**
 * javaBean标准的实体类User
 */
public class User {

    private int id;
    private String username;
    private String password;
    private String gender;

    public void setHehe(String gender){
        this.gender = gender;
    }

    //当属性名与成员变量不一致时,对应的方法为BeanUtils.getProperty(user,"hehe");
    public String getHehe(){
        return gender;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    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;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", gender='" + gender + '\'' +
                '}';
    }
}
/**运行前提:
 * 1.IDEA提示下导入相关jar包
 * 2.导入运行时参数要求的javeBean标准实体类User
 */

/**BeanUtilsTest:
 * 1.测试setProperty()
 * 2.测试getProperty()
 * 3.测试populate()
 */
public class BeanUtilsTest {

    @Test
    public void test(){
        User user = new User();
        try {
            //1.
            BeanUtils.setProperty(user,"username","马龙");
            System.out.println(user); //User{id=0, username='马龙', password='null'}
            
            //2.
            String username = BeanUtils.getProperty(user, "username");
            System.out.println(username); //马龙
            
            //3.
            Map<String,String> map =  new HashMap();
            map.put("username","马龙");
            map.put("password","123123");
            BeanUtils.populate(user,map);
            System.out.println(user); //User{id=0, username='马龙', password='123123'}
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值