`
ilrxx
  • 浏览: 64869 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

自己实现的apache beanUtil

阅读更多
    写这段代码之前不知道有beanUtil可以实现实体bean之间相同属性值的copy。。。不过听说apache那个解决date类型字段处理比较麻烦,我这个没这个问题,而且还能父类copy到子类,子类copy到父类。

import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class ReflexObject {
	/**
	 * @param root
	 *            源完整类名
	 * @param target
	 *            目标完整类名
	 * @param obj_root
	 *            源对象
	 * @return 目标对象
	 */
	@SuppressWarnings("unchecked")
	public static Object copyObjectValue(String root, String target,
			Object obj_root) {
		Field[] fields = null;
		try {
			if (obj_root == null || "null".equals(obj_root)
					|| "".equals(obj_root))
				return null;
			Class cls_root = Class.forName(root);
			Class cls_target = Class.forName(target);
			fields = cls_root.getDeclaredFields();
			if(!cls_root.isAssignableFrom(cls_target))
				fields = cls_target.getDeclaredFields();
			Object obj_target = cls_target.newInstance();
			for (Field field : fields) {
				String fieldName = field.getName();
				if (fieldName.equalsIgnoreCase("serialVersionUID"))
					continue;
				PropertyDescriptor pd_root = new PropertyDescriptor(fieldName,
						obj_root.getClass());
				Method getMethod = pd_root.getReadMethod();
				Method setMethod = pd_root.getWriteMethod();

				Object o = getMethod.invoke(obj_root);
				setMethod.invoke(obj_target, o);
			}

			return obj_target;
		} catch (Exception e) {
			e.printStackTrace();
		}

		return obj_root;
	}
}

1
1
分享到:
评论

相关推荐

    beanutil数据库操作工具

    1. **依赖管理**:确保项目中正确引入了BeanUtil的相关依赖库,通常是Apache Commons BeanUtils或类似的工具库。 2. **异常处理**:尽管BeanUtil提供了便利的数据转换,但依然可能会出现类型不匹配、属性不存在等...

    BeanUtil框架完整包

    Apache Commons BeanUtils是这个库的实现,它是Apache软件基金会开发的一个开源项目。`commons-beanutils-1.8.0`是该库的一个稳定版本,发布于2007年,虽然现在可能已经有更现代的版本,但这个版本依然被许多遗留...

    BeanUtil Jar包

    《BeanUtil:Apache提供的高效Java反射工具包》 在Java编程中,BeanUtil是一个非常重要的工具包,尤其在处理对象的属性操作时,它扮演着不可或缺的角色。BeanUtil源自著名的开源组织Apache,是其 Commons BeanUtils...

    BeanUtil_Jar包

    以上代码就实现了两个JavaBean对象之间属性的完全复制,无需关心具体的属性名称和类型,大大提高了开发效率。 此外,BeanUtil_Jar包还支持国际化(I18N)和本地化(L10N)操作,通过`MessageResources`类可以方便地...

    BeanUtil1.8 SRC 源码和 jar包

    BeanUtil库依赖于另一个Apache Commons组件——`commons-logging-1.1.1.jar`,这是一个通用的日志接口,它提供了各种日志框架(如log4j、java.util.logging等)的抽象层,使得BeanUtil可以灵活地选择合适的日志实现...

    commons-beanutil-1.7.0-src

    这个"commons-beanutil-1.7.0-src"压缩包包含了BeanUtils库的源代码,版本号为1.7.0,是开发者理解和自定义此库功能的重要资源。以下是关于Apache Commons BeanUtils库及其1.7.0版本的一些关键知识点: 1. **...

    beanutil的jar包打包

    "beanutil的jar包打包" 指的是将Apache Commons BeanUtils相关的类库打包成一个或多个JAR(Java Archive)文件。BeanUtils是Java开发中常用的工具包,它提供了对Java Bean操作的各种便利方法,如属性的设置与获取,...

    BeanUtil与Logging

    首先,BeanUtil通常指的是Apache Commons BeanUtils库,这是一个Java工具包,提供了一系列方便的类来处理JavaBeans。这些类帮助开发者简化了对象属性的设置、获取以及复制等工作,极大地提高了代码的可读性和可维护...

    beanutil源代码

    在IT行业中,BeanUtils是Apache Commons项目中的一个关键组件,主要用于简化JavaBean对象的操作。"beanutil源代码"指的是这个库的源代码,它提供了一系列的工具方法,使得开发者能够方便地对JavaBean属性进行设置、...

    Servlet中对获取网页表单数据自动给JavaBean赋值的BeanUtil工具类

    在实际开发中,Apache Commons BeanUtils库提供了BeanUtil工具类。你可以在项目中引入这个库,然后就可以使用`BeanUtils`类提供的方法。当然,还有很多其他的工具库,如Spring框架中的`BeanUtils.copyProperties()`...

    简单的jsp项目需要的jar包,包括MySQL,JDBCTemplte,jQuery,JSTL,c3p0,druid,BeanUtil

    BeanUtil通常指的是Apache Commons BeanUtils库,这是一个实用工具类库,提供了各种方法来操作Java Bean,如属性的复制、类型转换等。在JSP项目中,BeanUtil可以帮助我们方便地处理对象之间的属性赋值,简化对象间的...

    commons-beanutils-1.9.CHM

    commons-beanutil开源库是apache组织的一个基础的开源库。为apache中很多类提供工具方法。学习它是学习其它开源库实现的基础。 Commons-beanutil中包括大量和JavaBean操作有关的工具方法,使用它能够轻松利用Java...

    commons-beanutils.jar

    《Apache Commons BeanUtils:JavaBean操作利器》 Apache Commons BeanUtils是Java开发中一个非常重要的工具库,主要用于处理JavaBean对象。这个库提供了一系列便捷的方法,使得开发者可以更轻松地操作JavaBean的...

    BeanUtilities工具类使用jar包

    `commons-logging.jar`是Apache Commons Logging库,它是一个轻量级的日志抽象层,可以适配多种日志实现,如Log4j、JDK内置的日志等。在`BeanUtilities`中,可能会用到这个库来记录操作Bean时的调试信息或者错误信息...

    BeanUtils依赖Jar包与源码.rar

    BeanUtils是Apache Commons项目中的一员,它为Java开发者提供了一套便捷的Bean操作工具。这个压缩包包含了BeanUtils的核心组件`commons-beanutils-1.8.3.jar`以及其依赖的`commons-logging-1.1.1.jar`,这两个Jar包...

    文件上传fileload,beanutils以及io包

    这个场景通常涉及几个关键的库,如`commons-beanutils`、`commons-io`和`commons-fileupload`,这些都是Apache Commons项目的一部分,提供了丰富的工具类和方法,简化了处理文件上传和数据封装的过程。 `commons-...

    传智播客struts2全程学习笔记

    在Struts1中,如果需要实现相同的功能,则需要向Struts1的底层实现BeanUtil注册类型转换器,而在Struts2中则变得更加简单和直观。 4. **多样的视图技术支持**:Struts2不仅支持JSP作为视图层,还支持FreeMarker、...

    Java Web jar 包 dbutils dom4j c3p0 dbcp dom4j jstl Commons Logging

    而DBCP(Apache Commons DBCP)则是Apache提供的另一个数据库连接池实现,它基于Jakarta Pool库,为Java应用提供数据库连接的池化管理。 4. **jstl**: JSTL(JavaServer Pages Standard Tag Library)是Java Web...

    commons.zip

    2. **Commons Logging**: 这是Apache Commons提供的一个日志接口,它允许开发者在不改变代码的情况下切换不同的日志实现(如Log4j、Java内置的日志等)。`commons-logging-1.1.1.jar`使得开发者可以通过简单的API来...

Global site tag (gtag.js) - Google Analytics