`
thinkincoder
  • 浏览: 12692 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

解决BeanUtils复制Date时为null抛出异常的问题

阅读更多

使用BeaUtils.copyProperties时,如果源目标中包含Date类型(java.sql.date,java.util.date,java.sql.Timestamp)字段,而且该字段值为空时,会出现异常,无法赋值,解决方法是在源码中的两个类中各自增加一句代码即可:

1、ConvertUtilsBean.deregister()

public void deregister() {

        converters.clear();
        
        registerPrimitives(false);
        registerStandard(false, false);
        //registerOther(true);//此处为原来的代码
        registerOther(false);//新增的代码
        registerArrays(false, 0);
        register(BigDecimal.class, new BigDecimalConverter());
        register(BigInteger.class, new BigIntegerConverter());
    }
 

2、DateTimeConverter.toDate(Class type, String value)

// java.sql.Date
//源码此处只有一个判断,及if (type.equals(java.sql.Date.class) {}
        if (type.equals(java.sql.Date.class) || type.equals(java.util.Date.class)) {
            try {
                return java.sql.Date.valueOf(value);
            } catch (IllegalArgumentException e) {
                throw new ConversionException(
                        "String must be in JDBC format [yyyy-MM-dd] to create a java.sql.Date");
            }
        }
分享到:
评论

相关推荐

    commons-beanutils-jesse.zip(20080825更新)

    增加了BeanUtils的copyProperty以及copyProperties方法对Date的null值复制功能,取消了当Date为null时的抛异常。 2008-08-25更新: 修改了Date转换为String的时候只能转换为短日期格式的问题,现在默认情况下都修改...

    beanutils 复制文件

    beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件

    beanutils源码

    6. **异常处理**:BeanUtils在处理过程中遇到问题时,会抛出特定的异常,如`ConvertException`,这有助于调试和定位问题。 源码分析可以从以下几个方面入手: 1. **阅读源码结构**:首先了解项目的目录结构,包括...

    beanutils 的jar包

    4. **异常处理**:在使用`copyProperties()`时,若源对象和目标对象的属性不完全匹配,可能会抛出异常。建议在使用时添加try-catch语句块,处理可能出现的异常。 综上所述,Apache Commons BeanUtils库为JavaBean...

    BeanUtils工具包

    - 调用BeanUtils方法时,可能会抛出IllegalAccessException和InvocationTargetException,需要进行异常处理。 - 如果属性名不完全匹配或者类型转换失败,BeanUtils会抛出异常,因此需要确保对象属性名的正确性和类型...

    commons-beanutils的api文档.rar

    8. **异常处理**:在遇到问题时,BeanUtils通常会抛出`PropertyUtilsException`,这是对可能出现的各种错误进行封装的统一异常类。 为了更好地使用这个API文档,开发者可以通过`chm`文件查看每个类和方法的详细说明...

    BeanUtils工具类

    在使用BeanUtils时,如果JavaBean对象为null,`getProperty()`和`setProperty()`方法会抛出NullPointerException。为了避免这种情况,可以在调用这些方法前先检查对象是否为null。 8. **线程安全** BeanUtils工具...

    commons-beanutils-jesse.zip(20080717更新)

    2008-07-17更新: 增加了BeanUtils的copyProperty以及copyProperties方法对Date的null值复制功能,取消了当Date为null时的抛异常。 详情:...

    BeanUtils包

    1. **空值处理:** 如果目标属性为null,`setProperty()`方法会抛出异常。为了避免这种情况,可以使用`NullValueHandler`或者自定义的转换器。 2. **安全问题:** BeanUtils使用反射机制,如果属性是私有的,需要...

    beanutils JAR包下载

    4. **空值处理(Null Handling)**:当尝试设置null值时,BeanUtils会根据具体配置决定是否抛出异常,或者如何优雅地处理这种状况。 5. **国际化支持(Internationalization Support)**:BeanUtils可以与...

    BeanUtils jar包+源码

    4. **避免空指针异常**:BeanUtils在处理null值时,可能会抛出NullPointerException。为了避免这种情况,可以使用`NullHandler`或`DefaultHandler`来处理空值,它们会在遇到null值时返回默认值或不做任何操作。 5. ...

    commons-beanutils-1.9.4

    - 使用BeanUtils时需注意处理可能抛出的`IllegalAccessException`、`InvocationTargetException`和`NoSuchMethodException`等异常。 - 自定义类型转换器时,需确保转换过程的健壮性和兼容性。 - 在进行对象复制时...

    commons-beanutils-jesse.zip

    注:该包在对null的Date转换时会抛出No value specified的异常。如需支持对null的Date转换,请下载我的“commons-beanutils-jesse.zip(20080717更新)”资源 详情:...

    Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier

    综合来看,Apache BeanUtils和PropertyUtils适合简单的Bean复制,它们易于理解和使用,但在大规模复制时性能不佳。Spring BeanUtils在Spring生态系统中提供了更多灵活性,但性能仍然受限于反射。Cglib BeanCopier在...

    Commons BeanUtils 1.8.3 API

    6. **异常处理**:在处理过程中遇到的异常,如无法找到setter或getter方法,BeanUtils会抛出一个`PropertyUtilsException`,方便开发者进行异常处理。 7. **自定义转换器**:用户可以通过实现`Converter`接口来自...

    beanUtils包与源码

    同时,它还处理了可能抛出的异常,如`IllegalAccessException`和`InvocationTargetException`。 此外,BeanUtils还支持自定义转换器(Converter),这在处理不同类型之间的转换时非常有用。通过注册自定义的转换器...

    commons-beanutils-1.9.4.jar.zip

    6. **避免空指针异常**:BeanUtils库在处理null值时会进行保护,避免因属性不存在或值为null而抛出NullPointerException。 7. **国际化支持**:虽然1.9.4版本可能没有包含完整的国际化特性,但BeanUtils库的后续...

    Beanutils基本用法.doc

    对于不支持的类型,Beanutils会抛出异常。为了解决这个问题,可以使用自定义的转换器或者利用`ConvertUtils`注册自定义转换逻辑。 #### 五、总结 Beanutils提供了一套完整的工具集来处理JavaBean的属性读取、设置...

    BeanUtils工具 .jar 包

    3. **避免空指针异常**:在处理可能为空的对象或属性时,BeanUtils工具包会进行检查,如果源对象或属性为null,它不会抛出NullPointerException,而是安全地跳过,这在处理不确定的数据源时非常有用。 4. **处理...

    使用BeanUtils操作属性的一个小坑

    问题在于,BeanUtils在进行属性复制时,会尝试通过反射调用getter和setter方法,如果JavaBean的属性名称与实际getter或setter方法不完全匹配,或者属性类型不兼容,就会导致异常。例如,假设我们有一个属性名为`...

Global site tag (gtag.js) - Google Analytics