1. BeanUtil 类继承了 PropertyUtils 类:源代码:
public class BeanUtil extends PropertyUtils
2. 源代码如下,有小部份中文注释:
/**
* override BeanUtils method copyProperties, support not copy null or blank
* property
*
* @param dest
* @param src
* @throws IllegalAccessException
* @throws InvocationTargetException
* @throws IllegalArgumentException
*/
public static void copyProperties(Object dest, Object src) {
// 为两个参数时,skipNull 默认为true
copyProperties(dest, src, true);
}
/**
* override BeanUtils method copyProperties, support not copy null or blank
* property
*
* @param dest
* @param src
* @throws IllegalAccessException
* @throws InvocationTargetException
* @throws IllegalArgumentException
*/
public static void copyProperties(Object dest, Object src, boolean skipNull) {
// Validate existence of the specified beans
if (dest == null) {
throw new IllegalArgumentException("No destination bean specified");
}
if (src == null) {
throw new IllegalArgumentException("No origin bean specified");
}
// 获取所有src中的属性,存入于数组中
PropertyDescriptor[] origDescriptors = PropertyUtils
.getPropertyDescriptors(src);
for (int i = 0; i < origDescriptors.length; i++) {
// 取出src中属性名
String name = origDescriptors[i].getName();
if ("class".equals(name)) {
continue; // No point in trying to set an object's class
}
if (PropertyUtils.isReadable(src, name)
&& PropertyUtils.isWriteable(dest, name)) {
Object value = null;
try {
// 取出属性的值
value = PropertyUtils.getSimpleProperty(src, name);
} catch (Exception e) {
throw new RuntimeException();
}
if (skipNull) {
if (value == null) {
continue;
}
} else if (value == null){
value = null;
}
try {
//copyProperties(dest, name, value);
setProperty(dest, name, value);
} catch (Exception e) {
throw new RuntimeException();
}
}
}
}
使用方法很简单。
分享到:
相关推荐
BeanUtil框架是一个在Java开发中常用的工具库,主要用于对象属性的获取、设置、拷贝以及类型转换等操作。它的设计目标是简化Java Bean的操作,提高代码的可读性和可维护性。这个“BeanUtil框架完整包”包含了...
2. **批量属性复制**:BeanUtil还提供了`copyProperties()`方法,用于将一个对象的所有属性复制到另一个对象。这对于创建对象的副本或者进行对象间的数据迁移非常有用,大大减少了手动编写复制代码的工作量。 3. **...
在实际应用中,BeanUtil_Jar包的使用场景非常广泛,例如在对象的克隆、数据绑定、属性填充等方面都能看到它的身影。例如,我们可以通过以下方式复制一个JavaBean的所有属性到另一个对象: ```java import org....
当然,还有很多其他的工具库,如Spring框架中的`BeanUtils.copyProperties()`,它们都能实现类似的功能。 总的来说,BeanUtil工具类是Java Web开发中的实用工具,它简化了Servlet处理表单数据和JavaBean之间数据...
下面,我们详细分析一下这两个库在实际开发中的应用场景: 1. **BeanUtil的应用**: - **属性赋值**:BeanUtils的`copyProperties()`方法可以方便地将一个对象的属性值复制到另一个对象,这对于数据传输对象(DTO...
**标题解析:** ...综上所述,这个"beanutil的jar包打包"涉及到的是Java开发中的模块化、依赖管理和代码复用。通过将这些库打包,开发者可以轻松地在项目中引入这些功能,提高开发效率和代码质量。
总的来说,"beanutil源代码"和"fileupload"都是Java Web开发中的实用工具,前者简化了JavaBean对象的交互,后者则提供了强大的文件上传处理能力。将两者结合,可以高效地实现复杂的业务逻辑,如用户上传文件并保存...
这个"commons-beanutil-1.7.0-src"压缩包包含了BeanUtils库的源代码,版本号为1.7.0,是开发者理解和自定义此库功能的重要资源。以下是关于Apache Commons BeanUtils库及其1.7.0版本的一些关键知识点: 1. **...
例如,`copyProperties()`方法可以将一个Bean的所有属性值复制到另一个Bean,这在数据绑定和对象克隆场景中非常实用。 `commons-beanutils-core.jar`则包含了BeanUtils库的基础组件,可能包含了一些不依赖于额外库...
.map(user -> BeanUtil.copyProperties(user, UserDTO.class)) .collect(Collectors.toList()); ``` 9. 将 Stream 转换成数组: ```java List<Long> ids = new ArrayList(list.size()); list.stream().skip(from)....
4. 使用`BeanUtilities`填充Bean:通过`BeanUtilities.copyProperties()`方法,将数据源中的键值对映射到Bean的属性上。如果数据源是Map,键应该是Bean属性的名字,值则会被设置到对应的属性上。 5. 错误处理与日志...
它提供了一种便捷的方式来将表单参数映射到Java Bean的属性上,通过`BeanUtils.copyProperties()`方法,可以将一个包含表单字段的`Map`对象快速转换为Bean实例,大大减少了手动设置Bean属性的工作量。 在实际应用中...
`BeanUtil.java`可能会包含一个`copyProperties`方法,用于将源对象的属性值复制到目标对象: ```java import org.springframework.beans.BeanUtils; public class BeanUtil { public static , T> T ...
通过`copyProperties()`方法,我们可以方便地将一个对象的所有属性值复制到另一个对象中,无需手动编写setter和getter方法。 2. **动态属性访问(Dynamic Property Access)**:BeanUtils支持通过字符串形式的属性...
《BeanUtils:Java开发中的实用工具库》 BeanUtils是Apache Commons项目中的一员,它为Java开发者提供了一套便捷的Bean操作工具。这个压缩包包含了BeanUtils的核心组件`commons-beanutils-1.8.3.jar`以及其依赖的`...
在标题“beanUtils, CopyProperty”中提到的`copyProperties`方法,是BeanUtils库中的核心功能之一,用于在两个JavaBean对象之间复制属性值。这个方法极大地简化了对象之间的数据拷贝,特别是当需要将一个对象的属性...
`BeanUtils.copyProperties()` 方法是一个常用的函数,可以将一个对象的属性值复制到另一个对象中,这对于数据模型的映射非常有用。 在描述中提到的 "logging" 可能指的是 `commons-logging`,这也是 Apache ...
BeanUtils.copyProperties(first, second); for (String each : second.getIds()) { System.out.println(each); } } } ``` 在上面的示例代码中,我们使用Spring的BeanUtils来拷贝A对象的属性到B对象中。但是,...
而`commons-beanutil.txt`可能是一个包含使用示例、API文档或者关于这个包的说明文本。 总的来说,Apache Commons BeanUtils是Java开发中的利器,能够帮助开发者减少代码量,提高代码质量,特别是在处理表单数据与...
8. **BeanUtil.java**:用于Spring框架中的Bean操作,可能包含属性复制、Bean转换等功能。如`copyProperties(Object source, Object target)`可以将源对象的属性复制到目标对象。 9. **FileUtil.java**:文件操作...