关于使用BeanUtils.copyProperties拷贝时,时间类型为空时转换异常

第一步:

/**  

 * @Title: BeanUtil.java
 * @copyright
 * @Package net.atrunning.util
 * @Description:  用于解决Apache的BeanUtils 拷贝日期对象转换问题
 * @author Mr.chen
 * @date 2016-1-4 下午03:53:54
 */
public class BeanUtil extends BeanUtils{

    private BeanUtils() {}

    static {
        //注册sql.date的转换器,允许BeanUtils.copyProperties时sql.Date类型的值允许为空
        ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlDateConverter(null), java.sql.Date.class);
        //注册util.date的转换器,允许BeanUtils.copyProperties时util.Date类型的值允许为空
        ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlDateConverter(null), java.util.Date.class);
    }

    public static void copyProperties(Object target, Object source) throws InvocationTargetException,IllegalAccessException {
        org.apache.commons.beanutils.BeanUtils.copyProperties(target, source);
    }

}

第二部:

/**  
 * @Title: TestAction.java
 * @copyright
 * @Package net.atrunning.util
 * @Description: 测试重写的注册方法是否有效
 * @author Mr.chen
 * @date 2016-1-4 下午04:22:38
 */
public class TestAction {
    
    public static void main(String[] args) {
        BeanUtilEx.copyProperties(target, result);
    }

}

你可能感兴趣的:(java相关)