0 0

关于BeanUtils复制内部类失败的原因?25

相信apach下的BeanUtils.copyProperties大家都有用过,小弟最近一次使用是由一个public的bean复制到内部类,但是发现没有复制成功,所以研究了一下发现内部类没有public修饰符,所以针对没有修饰符的bean这个方法都行不通,源码中写到了必须是public才可以,但是我想问下各位大大,为什么会有这种限制呢?没有修饰符的default权限不可以吗?是什么导致的?是java的机制导致的吗?反射调用不了default中的方法?求大神解答

1个答案 按时间排序 按投票排序

0 0

这个是显而易见的,BeanUtils的包与你的Class不在同一个package下面,因此无法触发default(包可见)的方法, 反射机制默认情况下也是不行的,因此BeanUtils干脆就不做Copy了(可以想 想如果你的Bean只有Default可见权限,那么多半是不希望被Copy的)

当然,通过反射的机制修改可见性就是另外一回事了(Priviate都可以调用)

2014年7月07日 10:55

相关推荐

    BeanUtils包

    BeanUtils库是基于JavaBeans规范的,JavaBeans是一种符合特定规则的Java类,它们通常具有公有的getter和setter方法,用于封装和解封装对象的数据。 **BeanUtils的核心功能:** 1. **属性设置和获取:** BeanUtils...

    commons-beanutils 源码

    - 在实际开发中,了解并掌握BeanUtils的内部工作原理,可以帮助我们更高效地使用这个库,避免不必要的性能损耗,同时也可以从中学习到如何优雅地使用反射和异常处理。 总结来说,Apache Commons BeanUtils是Java...

    beanUtils jar 包,还包括source和doc

    - 在使用BeanUtils时,确保源对象和目标对象的属性名一致,否则复制失败。 - BeanUtils默认处理的是public属性,非public属性需要自定义转换规则。 - 如果属性值是集合或自定义对象,需要递归调用`copyProperties...

    commons-beanutils-1.8.3和commons-beanutils-1.8.0

    3. **集合操作**:BeanUtils还支持将数组或集合的元素映射到JavaBean的属性,以及将JavaBean的属性值复制到另一个对象的对应属性,这在数据复制和批量处理中非常方便。 4. **反射支持**:库内部利用了Java的反射...

    commons-beanutils-1.9.3jar包source包及相关jar包

    通过查看源代码,可以深入理解内部的工作机制,以及如何有效地利用这些工具类。 `commons-collections-3.2.2.jar`是Apache Commons Collections库,它是Java集合框架的扩展,提供了丰富的集合操作和算法。在...

    commons-beanutils-1.8.3-sources.jar

    在这个特定的版本“commons-beanutils-1.8.3-sources.jar”中,包含了该库的源代码,为开发者提供了深入理解其内部实现的可能。本文将详细阐述BeanUtils的核心功能、使用方法以及在实际开发中的应用场景。 Apache ...

    commons-beanutils-1.8.0.rar源文件及jar包

    压缩包中的“commons-beanutils-1.8.0-src.zip”包含了BeanUtils的源代码,这对于理解其内部实现机制,以及自定义扩展功能具有很大帮助。通过阅读源码,开发者可以了解如何使用反射和Java的 introspection API来实现...

    commons-beanutils-1.8.0-sources.jar

    1. **属性复制**:BeanUtils最知名的特性之一就是它的`copyProperties()`方法,这个方法可以将一个Bean的所有属性值复制到另一个Bean中。它自动处理类型转换,使得源Bean和目标Bean的属性类型不必完全匹配。 2. **...

    commons-beanutils快速封装form表单数据包

    Apache Commons BeanUtils是Java开发中一个非常实用的工具库,主要功能是简化对象与JavaBean之间的操作,包括属性的设置、获取以及复制等。在处理Web应用中的表单数据时,它能帮助开发者高效地将HTTP请求参数映射到...

    BeanUtils.zip

    BeanUtils类就是针对这种对象设计的工具类,它提供了大量的静态方法,使得我们能便捷地实现JavaBean属性的设置和获取,以及深度复制等操作。 1. **属性设置与获取**: BeanUtils提供了`getProperty()`和`set...

    apache BeanUtils

    Apache BeanUtils是Apache Commons项目中的一个模块,它提供了一组工具类来简化JavaBean操作。在Java开发中,BeanUtils库极大地提高了开发效率,尤其是在处理对象属性的设置、获取以及复制等方面。以下是对Apache ...

    Java灵魂17问.pdf

    首先,为什么禁止使用Apache Beanutils进行属性复制?Apache Beanutils虽然提供了便捷的属性拷贝功能,但它可能会引发安全问题,如潜在的代码注入风险,因为它是基于反射机制来工作的。此外,它默认不进行类型检查,...

    BeanUtilsTest

    在Java编程领域,"BeanUtilsTest"通常指的是一个用于测试Apache Commons BeanUtils库的示例项目。Apache Commons BeanUtils是一个非常...通过这个项目,开发者可以深入了解BeanUtils的内部工作原理,同时确保代码质量。

    Java项目使用小知识

    `BeanUtils` 是 Apache Commons BeanUtils 库中一个非常实用的工具类,它提供了方便的Java Bean属性的设置和复制功能。在项目中,我们可以通过以下两种方式来操作Bean的属性: - `BeanUtils.populate(es, map);` ...

    struts1jar包说明

    - 支持属性拷贝,可以方便地将一个对象的属性复制到另一个对象中。 - 提供了一些常用的数据类型转换方法,简化了数据处理的过程。 - **应用场景**:在Struts1中,Commons-BeanUtils被广泛用于处理表单数据,简化...

Global site tag (gtag.js) - Google Analytics