Java BeanUtils - BeanUtils 和 ConvertUtils

描述

BeanUtils 被定义为用于填充 JavaBeans 属性的实用方法,ConvertUtils 方法将字符串标量值转换为对象,将字符串数组转换为指定类的数组。

BeanUtils

BeanUtils 通过使用 setter 方法接受字符串值,并自动将它们转换为适合 Java 基元的属性类型,并使用 getter 方法进行反向转换。 populate() 方法接受来自 java.util.HashMap 的属性值集,并在 bean 包含同名属性时使用合适的 setter。

示例

下面的示例显示了 BeanUtils 属性的用法:

import java.util.HashMap;
import org.apache.commons.beanutils.BeanUtils;

public class Test {
    @SuppressWarnings("unchecked")
    public static void main(String[] args){
        @SuppressWarnings("rawtypes")
        HashMap map = new HashMap();
        map.put("username","admin");
        map.put("password","secret");
        map.put("age","52");
        
        User bean = new User();
        try{
              BeanUtils.populate(bean,map);
        }catch(Exception e){
              e.printStackTrace();
        }
        
        System.out.println("Username: "+bean.getUsername());
        System.out.println("Password: "+bean.getPassword());
        System.out.println("Age: "+bean.getAge());
    }
}

现在我们将创建另一个名为 User.java 的类,如下所示:

public class User {
    private String username;
    private String password;
    private String age;
    
    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 String getAge() {
        return age;
    }
	
    public void setAge(String age){
        this.age = age;
    }
}

输出

让我们执行以下步骤来看看上面的代码是如何工作的:

  • 将上面的第一段代码保存为Test.java。

  • 现在使用"运行"选项或 Ctrl+f11 执行代码,并显示如下输出。

BeanUtils 和 ConvertUtils

ConvertUtils

Apache Commons BeanUtils 是一个库,带有许多转换器,用于在不同数据类型之间进行转换,并且还包含使用这些转换器的 ConvertUtils 实用程序类。

示例

下面的示例展示了使用 ConvertUtils 实用程序将字符串数组转换为双精度数组:

package com.javadb;
import org.apache.commons.beanutils.ConvertUtils;

public class ConvertStringArrayToDoubleArray {
    public static void main(String[] args) {
        String values[] = { "5", "6", "3" };
        double[] doubleValues = (double[])ConvertUtils.convert(values, Double.TYPE);   
        for (double d : doubleValues) {
            System.out.println(d);
        }
    }
}

输出

  • 将上面的第一个代码保存为 ConvertStringArrayToDoubleArray.java。

  • 现在使用"运行"选项或 Ctrl+f11 执行代码,并显示如下输出。

ConvertUtils