今天做项目时,遇到一个把一个map的值赋给一个JavaBean,本来是很简单的事,用apache的BeanUtils就可以了,不过JavaBean里有个成员变量的类型是Enum,转的时候就报错,在百度搜了半天没搜到,本来想自己通过反射来实现,但考虑到通用性上,最后还是在看org.apache.commons.beanutils.BeanUtils的相关官方文档才找到解决办法的。
比如一个map{productID=1,type=CAR},
javaBean为public class Product{
String productID;
ProductType type;//ProductType为一个enum
}
转的代码也比较简单:
//注入一个ProductType枚举 ConvertUtils.register(new Converter() { public Object convert(Class type, Object value) { return ProductType.valueOf((String)value); } }, ProductType.class); }
然后再使用BeanUtils.copyProperties(dest, orig);就可以了。
不知道有没有别的好的方法,本人觉得最主要是怎么让copy方法知道javabean里面的枚举类型,就像Xstream把xml转为javabean时,要知道是哪个对象,里面的嵌套对象是哪个类。
相关推荐
在JavaWeb开发中,BeanUtils工具类扮演着重要的角色,它是Apache Commons项目的一部分,具体是Apache Commons BeanUtils库。这个库提供了一系列方便的方法,用于处理JavaBeans,即那些符合JavaBeans规范的对象。在这...
在Java开发中,BeanUtils工具类是Apache Commons项目的一个重要组成部分,主要负责处理Java对象(通常称为Beans)的属性操作。BeanUtils库提供了一系列便捷的方法,使得开发者可以更轻松地进行对象属性的设置、获取...
`BeanUtils`工具类是Apache Commons项目中的一个组件,它为Java开发提供了一种便捷的方式来操作JavaBean属性,极大地简化了使用反射API的工作。在Java编程中,JavaBean是一种遵循特定规则的对象,通常用于封装数据并...
BeanUtils工具类是由Apache软件基金会开发的一个开源库,它简化了JavaBean的处理,提供了反射和属性操作的功能。BeanUtils提供了以下主要功能: 1. `BeanUtils.setProperty()`: 用于设置JavaBean对象的属性值,只...
BeanUtils的`PropertyUtils`类中的`convertType()`方法能够自动将一个对象转换为指定的目标类型,这大大提高了代码的灵活性和可维护性。 此外,BeanUtils库还支持属性的动态设置和获取。`PropertyUtils.getProperty...
BeanUtils工具.jar包是Apache Commons项目中的一个核心组件,它为Java开发人员提供了一套方便的工具类,用于处理Java Bean对象之间的属性复制、类型转换等常见操作。这个库简化了对象模型之间的数据绑定,特别是在...
这个包主要提供用于操作JavaBean的工具类,Jakarta-Common-BeanUtils的主要功能都在这个包里实现。
Spring BeanUtils工具类是Spring框架中的一个重要组成部分,它基于Apache Commons BeanUtils库,提供了一种简单而便捷的方式来处理JavaBean的属性。这个工具类极大地简化了对象之间属性的复制、类型转换以及对...
Apache Commons BeanUtils是Java开发中一个非常重要的工具库,它为处理JavaBeans提供了方便的API。这个源码压缩包"commons-beanutils-1.8.3-src.tar.gz"包含了BeanUtils库的源代码,可以帮助开发者深入理解其内部...
Apache Commons BeanUtils库是Java开发中不可或缺的一部分,尤其对于那些频繁处理JavaBeans属性的开发者来说。它提供了便捷的方式来操作Java对象的属性,极大地简化了代码。本文将详细探讨`commons-beanutils-1.8.0....
在描述中提到的"很全面的",意味着这个压缩包可能包含了BeanUtils库的所有类、接口、文档、示例代码和可能的测试用例,使得开发者可以全面了解和利用BeanUtils的功能。 BeanUtils包的核心概念是JavaBeans,这是一种...
在Java编程中,Java Bean通常表示为具有属性、构造函数和getter/setter方法的简单类,BeanUtils库极大地简化了这些对象的创建、属性设置和访问。 BeanUtils的核心功能包括: 1. **属性拷贝**:通过`copyProperties...
首先,BeanUtils库的核心功能在于它提供了方便的Java Bean操作接口,这些接口能够帮助开发者以更简洁的方式处理对象属性的get和set操作。例如,`BeanUtils.copyProperties()`方法可以用来复制一个Bean的所有属性到另...
- **异常处理**:在处理过程中,BeanUtils会捕获并封装可能出现的异常,提供友好的错误信息,如`ConversionException`和`IllegalAccessException`。 4. **实际应用**:在实际开发中,BeanUtils常用于数据绑定,...
BeanUtils库对可能出现的异常进行了包装,比如`NoSuchMethodException`和`IllegalAccessException`,通过`BeanUtils`类的方法抛出的是`BeanUtilsException`,这简化了异常处理逻辑。 6. **国际化支持** BeanUtils...
Apache Commons BeanUtils是Java开发中广泛使用的工具库,主要用于处理JavaBean对象的属性操作。这个库的核心功能在于简化了JavaBean对象的属性设置、获取以及复制等操作,使得开发者能够更加方便地进行数据绑定和...
本资源包主要围绕`BeanUtils`工具类的使用进行讲解,旨在帮助开发者更好地理解和应用这个工具类。 首先,`BeanUtils`的核心功能是基于JavaBean规范,它提供了方便的方法来处理Java对象的属性。JavaBean是一种遵循...
4. **异常处理**:BeanUtils在执行过程中,如果遇到无法处理的情况(如找不到对应的setter或getter方法),会抛出`InvocationTargetException`。这有助于我们在程序中捕获并处理这些异常。 5. **依赖注入**:虽然...
5. **集合操作**:BeanUtils还支持对集合类的操作,如列表和数组,可以方便地将集合中的元素映射到JavaBeans对象的属性上。 在网络框架中,BeanUtils的作用尤为重要: - **模型绑定**:在网络框架中,通常需要将...
然而,需要注意的是,BeanUtils在处理类型转换时默认不做任何检查,这意味着如果属性类型不匹配,可能会抛出异常。为了处理这种情况,Apache Commons提供了另一个类似的包——`Dozer`,它提供了更智能的类型转换机制...