1. 干什么?
- 操作bean的,java web开发中,vo , entity 间不同对象,但是他们的属性几乎一样,beanUtil可以帮你把一个对象的属性copy到另一个属性中去!只是这其中有些注意点,规矩是工具包的作者制定的,我们得按照他的规矩来!
BeanUtils.setProperty(Obejct bean, String name, Object value); // 通过这个方法 你可以给bean的字段赋值,即使name在bean中不存在他也不会报错! // 但是如果你想通过getProperty(Obejct bean ,String name) 获得该字段的值就会 // 报NoSuchMethodException 因为它是通过反射调用getter来获得值的,而你没定义这个方法自然就会报错!
s.copyProperties(Object dest, Object orig); // 他会把orig对象的字段拷贝到dest中,但是必须保证字段名称相同 // 不同的,他会忽略 不会报错! 如果存在自定义对象,比如dest中是User ,orig中是t_usr ,但是这两个类中的字段是一样的,可以copy成功吗?entity间的映射关系 貌似不可以,会报非法访问的异常!直接copy当然不可以! 可以通过定义装换器 converter!
1. 定义转换器
public class AnimalConverter implements Converter{ // 实现这个接口 @Override public <T> T convert(Class<T> type, Object value) {// 转换后的类型 以及 要转换后的对象 T ani = null; try { ani = type.newInstance(); // 通过反射由类名获得对象 BeanUtils.copyProperties(ani, value);// 将valu中的字段复制到转换后的对象中 } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return ani; } }
2. 注册
AnimalConverter ac = new AnimalConverter(); ConvertUtils.register(ac,Animal.class); // 第二个参数表示你要转换成类型 ConvertUtils.register(ac, Fish.class);// 如果类之间的关系是一层套一层,比如person包含 annimal , animal 中又包含fish ,就要定义多个转换器
这里有一个问题,你多次注册的话,那么当进行转换时,怎么找到你要转换的类啊?这样不会重复了吗?
不会的,看源码:
// 这一步是转换的过程 value 为要转换的对象 , type为要转换成的类型 protected Object convert(Object value, Class<?> type) { // 就是这一步了,他会根据type到convertUtil里面去寻找相应的类型!所以不管你定义了多少个 // 不同类型的转换器,不会相互干扰的! Converter converter = getConvertUtils().lookup(type); if (converter != null) { log.trace(" USING CONVERTER " + converter); // 这里就会调用你实现的方法,进行转换 return converter.convert(type, value); } else { return value; } }
相关推荐
这个“BeanUtil_Jar包”正是这样一个实用的工具集,它包含了丰富的功能,使得处理JavaBean的工作变得简单而高效。本文将深入探讨BeanUtil_Jar包的核心特性和使用方法,帮助开发者更好地理解和应用这个经典库。 首先...
《BeanUtil:Apache提供的高效Java反射工具包》 在Java编程中,BeanUtil是一个非常重要的工具包,尤其在处理对象的属性操作时,它扮演着不可或缺的角色。BeanUtil源自著名的开源组织Apache,是其 Commons BeanUtils...
这个“BeanUtil框架完整包”包含了BeanUtil的核心组件,具体来说就是`commons-beanutils-1.8.0`这个版本的库。 Apache Commons BeanUtils是这个库的实现,它是Apache软件基金会开发的一个开源项目。`commons-...
本文将深入探讨BeanUtil工具类的工作原理以及如何在Servlet中使用它。 首先,让我们理解一下JavaBean的概念。JavaBean是一种遵循特定规范的Java类,主要用于封装数据。它通常具有公有构造器、公有getter和setter...
BeanUtils是Java开发中常用的工具包,它提供了对Java Bean操作的各种便利方法,如属性的设置与获取,类型转换等。 **描述分析:** 描述中提到了三个关键组件: 1. **commons-beanutils-1.9.3**:这是Apache ...
这个jar包可以被添加到项目的类路径中,使得开发者可以在项目中直接使用BeanUtil提供的功能,如动态地获取、设置Bean的属性,以及进行Bean之间的复制等。在实际开发中,我们可以利用这些功能,大大减少代码量,提高...
Jodd工具包的亮点之一是其强大的对象拷贝功能,通过`BeanUtil`类,可以方便地实现对象之间的属性复制,这对于数据转换和模型绑定非常有用。此外,它的`LagartoHTMLParser`提供了一个高效的HTML解析器,可以帮助...
Java常用工具包Jodd是一个强大的开源库,专为Java开发者设计,提供了许多实用的功能和类,以简化开发过程。这个工具包涵盖了多个领域,包括HTTP客户端、数据转换、日期时间处理、字符串操作、I/O流、线程管理、对象...
在给定的标题"BeanUtil_MYSQL_mybaatis_"中,我们可以推断这是一个关于MyBatis和MySQL结合使用的工具类,可能用于自动根据实体Bean生成SQL语句。描述进一步明确了这个工具的功能,包括自动生成创建表的DDL(Data ...
首先,BeanUtil通常指的是Apache Commons BeanUtils库,这是一个Java工具包,提供了一系列方便的类来处理JavaBeans。这些类帮助开发者简化了对象属性的设置、获取以及复制等工作,极大地提高了代码的可读性和可维护...
【标题】中的"dom4j jstl beanUtil log4j等jar包"涉及了四个重要的Java库,它们在开发Java应用程序,特别是Web应用时非常常见。下面将逐一详细介绍这些库的功能、用途以及如何在项目中使用它们。 1. **DOM4J**:这...
使用`BeanUtilities`工具类的一般步骤如下: 1. 引入相关的库文件:在Java项目中,将这三个jar包添加到项目的类路径中,确保编译和运行时能够找到对应的类和方法。 2. 创建Java Bean对象:首先,你需要定义一个...
"beanutil源代码"指的是这个库的源代码,它提供了一系列的工具方法,使得开发者能够方便地对JavaBean属性进行设置、获取以及转换。在本案例中,"commons-beanutils-1.8.0-src"是包含BeanUtils库1.8.0版本的源代码...
BeanUtil通常指的是Apache Commons BeanUtils库,这是一个实用工具类库,提供了各种方法来操作Java Bean,如属性的复制、类型转换等。在JSP项目中,BeanUtil可以帮助我们方便地处理对象之间的属性赋值,简化对象间的...
开发者可以通过解压"commons-beanutils-1.7.0-src",阅读源代码来深入了解其内部实现,学习如何使用反射、泛型和异常处理等Java技术,以及如何构建类似的实用工具库。此外,源代码还提供了丰富的注释和示例,有助于...
按需选择,其中工具类模块有:jodd-core 一些工具类,包括Printf、JDateTime、StringUtil、Fast buffers等等jodd-bean BeanUtil以及类型检查转换工具jodd-props 更强大的Java Properties替代jodd-email 更简单...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
Apache BeanUtils是...总之,Apache BeanUtils是Java开发中的一个重要工具,它简化了Bean对象的操作,提升了开发效率。通过阅读API文档和实践使用,开发者可以更好地掌握这一强大的库,并将其应用到自己的项目中。
在JavaWeb开发中,各种工具包的使用极大地提升了开发效率和代码质量。其中,"itcast-tools-1.4.2.jar"是传智博客单独为JavaWeb开发者设计的一个实用工具包,其主要功能包括对UUID的处理和对象转换,帮助开发者更方便...
集合类概述、Bean工具(BeanUtil)和DynaBean为Java集合框架和JavaBean操作提供了便利。表达式解析(BeanPath)、集合工具(CollUtil)、Iterator工具(IterUtil)和有界优先队列(BoundedPriorityQueue)则为集合...