写这段代码之前不知道有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. **依赖管理**:确保项目中正确引入了BeanUtil的相关依赖库,通常是Apache Commons BeanUtils或类似的工具库。 2. **异常处理**:尽管BeanUtil提供了便利的数据转换,但依然可能会出现类型不匹配、属性不存在等...
Apache Commons BeanUtils是这个库的实现,它是Apache软件基金会开发的一个开源项目。`commons-beanutils-1.8.0`是该库的一个稳定版本,发布于2007年,虽然现在可能已经有更现代的版本,但这个版本依然被许多遗留...
《BeanUtil:Apache提供的高效Java反射工具包》 在Java编程中,BeanUtil是一个非常重要的工具包,尤其在处理对象的属性操作时,它扮演着不可或缺的角色。BeanUtil源自著名的开源组织Apache,是其 Commons BeanUtils...
以上代码就实现了两个JavaBean对象之间属性的完全复制,无需关心具体的属性名称和类型,大大提高了开发效率。 此外,BeanUtil_Jar包还支持国际化(I18N)和本地化(L10N)操作,通过`MessageResources`类可以方便地...
BeanUtil库依赖于另一个Apache Commons组件——`commons-logging-1.1.1.jar`,这是一个通用的日志接口,它提供了各种日志框架(如log4j、java.util.logging等)的抽象层,使得BeanUtil可以灵活地选择合适的日志实现...
这个"commons-beanutil-1.7.0-src"压缩包包含了BeanUtils库的源代码,版本号为1.7.0,是开发者理解和自定义此库功能的重要资源。以下是关于Apache Commons BeanUtils库及其1.7.0版本的一些关键知识点: 1. **...
"beanutil的jar包打包" 指的是将Apache Commons BeanUtils相关的类库打包成一个或多个JAR(Java Archive)文件。BeanUtils是Java开发中常用的工具包,它提供了对Java Bean操作的各种便利方法,如属性的设置与获取,...
首先,BeanUtil通常指的是Apache Commons BeanUtils库,这是一个Java工具包,提供了一系列方便的类来处理JavaBeans。这些类帮助开发者简化了对象属性的设置、获取以及复制等工作,极大地提高了代码的可读性和可维护...
在IT行业中,BeanUtils是Apache Commons项目中的一个关键组件,主要用于简化JavaBean对象的操作。"beanutil源代码"指的是这个库的源代码,它提供了一系列的工具方法,使得开发者能够方便地对JavaBean属性进行设置、...
在实际开发中,Apache Commons BeanUtils库提供了BeanUtil工具类。你可以在项目中引入这个库,然后就可以使用`BeanUtils`类提供的方法。当然,还有很多其他的工具库,如Spring框架中的`BeanUtils.copyProperties()`...
BeanUtil通常指的是Apache Commons BeanUtils库,这是一个实用工具类库,提供了各种方法来操作Java Bean,如属性的复制、类型转换等。在JSP项目中,BeanUtil可以帮助我们方便地处理对象之间的属性赋值,简化对象间的...
commons-beanutil开源库是apache组织的一个基础的开源库。为apache中很多类提供工具方法。学习它是学习其它开源库实现的基础。 Commons-beanutil中包括大量和JavaBean操作有关的工具方法,使用它能够轻松利用Java...
《Apache Commons BeanUtils:JavaBean操作利器》 Apache Commons BeanUtils是Java开发中一个非常重要的工具库,主要用于处理JavaBean对象。这个库提供了一系列便捷的方法,使得开发者可以更轻松地操作JavaBean的...
`commons-logging.jar`是Apache Commons Logging库,它是一个轻量级的日志抽象层,可以适配多种日志实现,如Log4j、JDK内置的日志等。在`BeanUtilities`中,可能会用到这个库来记录操作Bean时的调试信息或者错误信息...
BeanUtils是Apache Commons项目中的一员,它为Java开发者提供了一套便捷的Bean操作工具。这个压缩包包含了BeanUtils的核心组件`commons-beanutils-1.8.3.jar`以及其依赖的`commons-logging-1.1.1.jar`,这两个Jar包...
这个场景通常涉及几个关键的库,如`commons-beanutils`、`commons-io`和`commons-fileupload`,这些都是Apache Commons项目的一部分,提供了丰富的工具类和方法,简化了处理文件上传和数据封装的过程。 `commons-...
在Struts1中,如果需要实现相同的功能,则需要向Struts1的底层实现BeanUtil注册类型转换器,而在Struts2中则变得更加简单和直观。 4. **多样的视图技术支持**:Struts2不仅支持JSP作为视图层,还支持FreeMarker、...
而DBCP(Apache Commons DBCP)则是Apache提供的另一个数据库连接池实现,它基于Jakarta Pool库,为Java应用提供数据库连接的池化管理。 4. **jstl**: JSTL(JavaServer Pages Standard Tag Library)是Java Web...
2. **Commons Logging**: 这是Apache Commons提供的一个日志接口,它允许开发者在不改变代码的情况下切换不同的日志实现(如Log4j、Java内置的日志等)。`commons-logging-1.1.1.jar`使得开发者可以通过简单的API来...