使用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");
}
}
分享到:
相关推荐
增加了BeanUtils的copyProperty以及copyProperties方法对Date的null值复制功能,取消了当Date为null时的抛异常。 2008-08-25更新: 修改了Date转换为String的时候只能转换为短日期格式的问题,现在默认情况下都修改...
beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件 beanutils 复制文件
6. **异常处理**:BeanUtils在处理过程中遇到问题时,会抛出特定的异常,如`ConvertException`,这有助于调试和定位问题。 源码分析可以从以下几个方面入手: 1. **阅读源码结构**:首先了解项目的目录结构,包括...
4. **异常处理**:在使用`copyProperties()`时,若源对象和目标对象的属性不完全匹配,可能会抛出异常。建议在使用时添加try-catch语句块,处理可能出现的异常。 综上所述,Apache Commons BeanUtils库为JavaBean...
- 调用BeanUtils方法时,可能会抛出IllegalAccessException和InvocationTargetException,需要进行异常处理。 - 如果属性名不完全匹配或者类型转换失败,BeanUtils会抛出异常,因此需要确保对象属性名的正确性和类型...
8. **异常处理**:在遇到问题时,BeanUtils通常会抛出`PropertyUtilsException`,这是对可能出现的各种错误进行封装的统一异常类。 为了更好地使用这个API文档,开发者可以通过`chm`文件查看每个类和方法的详细说明...
在使用BeanUtils时,如果JavaBean对象为null,`getProperty()`和`setProperty()`方法会抛出NullPointerException。为了避免这种情况,可以在调用这些方法前先检查对象是否为null。 8. **线程安全** BeanUtils工具...
2008-07-17更新: 增加了BeanUtils的copyProperty以及copyProperties方法对Date的null值复制功能,取消了当Date为null时的抛异常。 详情:...
1. **空值处理:** 如果目标属性为null,`setProperty()`方法会抛出异常。为了避免这种情况,可以使用`NullValueHandler`或者自定义的转换器。 2. **安全问题:** BeanUtils使用反射机制,如果属性是私有的,需要...
4. **空值处理(Null Handling)**:当尝试设置null值时,BeanUtils会根据具体配置决定是否抛出异常,或者如何优雅地处理这种状况。 5. **国际化支持(Internationalization Support)**:BeanUtils可以与...
4. **避免空指针异常**:BeanUtils在处理null值时,可能会抛出NullPointerException。为了避免这种情况,可以使用`NullHandler`或`DefaultHandler`来处理空值,它们会在遇到null值时返回默认值或不做任何操作。 5. ...
- 使用BeanUtils时需注意处理可能抛出的`IllegalAccessException`、`InvocationTargetException`和`NoSuchMethodException`等异常。 - 自定义类型转换器时,需确保转换过程的健壮性和兼容性。 - 在进行对象复制时...
注:该包在对null的Date转换时会抛出No value specified的异常。如需支持对null的Date转换,请下载我的“commons-beanutils-jesse.zip(20080717更新)”资源 详情:...
综合来看,Apache BeanUtils和PropertyUtils适合简单的Bean复制,它们易于理解和使用,但在大规模复制时性能不佳。Spring BeanUtils在Spring生态系统中提供了更多灵活性,但性能仍然受限于反射。Cglib BeanCopier在...
6. **异常处理**:在处理过程中遇到的异常,如无法找到setter或getter方法,BeanUtils会抛出一个`PropertyUtilsException`,方便开发者进行异常处理。 7. **自定义转换器**:用户可以通过实现`Converter`接口来自...
同时,它还处理了可能抛出的异常,如`IllegalAccessException`和`InvocationTargetException`。 此外,BeanUtils还支持自定义转换器(Converter),这在处理不同类型之间的转换时非常有用。通过注册自定义的转换器...
6. **避免空指针异常**:BeanUtils库在处理null值时会进行保护,避免因属性不存在或值为null而抛出NullPointerException。 7. **国际化支持**:虽然1.9.4版本可能没有包含完整的国际化特性,但BeanUtils库的后续...
对于不支持的类型,Beanutils会抛出异常。为了解决这个问题,可以使用自定义的转换器或者利用`ConvertUtils`注册自定义转换逻辑。 #### 五、总结 Beanutils提供了一套完整的工具集来处理JavaBean的属性读取、设置...
3. **避免空指针异常**:在处理可能为空的对象或属性时,BeanUtils工具包会进行检查,如果源对象或属性为null,它不会抛出NullPointerException,而是安全地跳过,这在处理不确定的数据源时非常有用。 4. **处理...
问题在于,BeanUtils在进行属性复制时,会尝试通过反射调用getter和setter方法,如果JavaBean的属性名称与实际getter或setter方法不完全匹配,或者属性类型不兼容,就会导致异常。例如,假设我们有一个属性名为`...