BeanUtils自定义转换器 (一)

使用 commons-beanutils-1.8.0.jar 与 commons-logging.jar

对javaBean的存取操作

1) BeanUtils bUtils = new BeanUtils();

2) 在存取值得时候8种基本类型可以 自动转换
 
 可以注册自己定义的类型转化/注册使用BeanUtils定义好的转换规则 
注册: ConvertUtils.register(转换方式,要转换的目标类型);

(org.apache.commons.beanutils.converters)包里面 预先定义好的转换规则

 

自定义转换方式:

1):一个实现了org.apache.commons.beanutils.Converter 接口的类

CASE:

public class MyDateConvert implements Converter {
 public Object convert(Class type, Object value) {
   try {

    String str = null;

    if (value instanceof String) {

      str = (String) value;
    } else if (value instanceof java.util.Date) {
      str = convertTimestamp(((java.util.Date)value).getTime());
    } else if (value instanceof Long) {
      str = convertTimestamp((Long) value);
    } else {

      throw new NotAttributeException();

    }
    return new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(str);
  } catch (NotAttributeException e) {
    e.printStackTrace();
    return null;

  } catch (ParseException e) {
    e.printStackTrace();
    return null;
  }
}

 private String convertTimestamp(Long time) {
  return new java.sql.Timestamp(time).toString();
 }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BeanUtils.copyProperties()方法的另一个重载方法中,我们可以指定一个属性值转换器转换源对象中的属性值。该方法的签名如下: ``` void copyProperties(Object dest, Object orig, Converter converter) ``` 其中,converter参数是一个属性值转换器,它被用来将源对象中的属性值转换为目标对象中的属性值。 下面是一个示例代码,展示如何使用属性值转换器转换源对象中的属性值: ``` // 定义一个属性值转换器 Converter myConverter = new Converter() { @Override public Object convert(Class type, Object value) { if (value == null) { // 如果源对象中的属性值为null,则返回一个默认值 return "default"; } else { // 如果源对象中的属性值不为null,则进行其他自定义转换 return value.toString().toUpperCase(); } } }; // 创建源对象 MySourceObject source = new MySourceObject(); source.setName("John"); source.setAge(30); // 创建目标对象 MyDestObject dest = new MyDestObject(); // 使用属性值转换器将源对象中的属性值转换为目标对象中的属性值 BeanUtils.copyProperties(dest, source, myConverter); // 输出目标对象中的属性值 System.out.println(dest.getName()); // 输出 "JOHN" System.out.println(dest.getAge()); // 输出 "default" ``` 在上面的示例中,我们定义了一个属性值转换器myConverter,它将源对象中的属性值转换为目标对象中的属性值。在myConverter中,我们进行了如下操作: - 如果源对象中的属性值为null,则返回一个默认值"default"。 - 如果源对象中的属性值不为null,则将其转换为大写字母形式。 接下来,我们创建了一个源对象source和一个目标对象dest,并使用BeanUtils.copyProperties()方法将源对象中的属性值复制到目标对象中。在此过程中,我们传递了属性值转换器myConverter作为参数,以便将源对象中的属性值转换为目标对象中的属性值。最后,我们输出目标对象中的属性值,以验证转换器是否正确地转换了源对象中的属性值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值