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

PropertyUtils.getProperty(bean,name)出现的问题

阅读更多
public calss Point {
    private Double xPoint;
    private Double yPoint;
    getter  and setter ....

   public static void main(String... args) {
    Point p = new Point();
    p.setXPoint(12.3);
    PropertyUtils.getProperty(p, "xPoint");
}
}



报错
Exception in thread "main" java.lang.NoSuchMethodException: Unknown property 'xPoint'
at org.apache.commons.beanutils.PropertyUtils.getSimpleProperty(PropertyUtils.java:1175)
at org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:772)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)

当属性换用 xxPoint时便不报错。跟踪测试时发现反射得到的属性是 XPoint, 而非xPoint,这是怎么回事呢?

经查证实是commons-beanutils自身bug

https://issues.apache.org/jira/browse/BEANUTILS-30

https://issues.apache.org/jira/browse/BEANUTILS-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12613904#action_12613904

分享到:
评论

相关推荐

    commons-beanutils-1.7.0.jar.zip

    String name = (String) PropertyUtils.getProperty(person, "name"); System.out.println("Name: " + name); // 输出:Name: John Doe } } ``` 3. 类型转换:BeanUtils还提供了自动类型转换的能力,这意味着你...

    java 通用比较类

    在这个例子中,`PropertyUtils.getProperty()`方法来自Apache Commons BeanUtils库,用于获取对象的指定属性值。这个比较器可以接受任何具有`compareTo()`方法的对象,只要对应的属性是可比较的。 4. **使用通用...

    Java反射获取class对象方式解析

    1. 使用Class.forName静态方法 这种方法可以通过类的全路径名来获取Class对象,前提是已明确类的全路径名。例如:`Class clazz1 = Class.forName("com.reflection.User");` 2. 使用.class方法 这种方法可以通过类的...

    BeanUtils详细解说

    Address address = (Address) PropertyUtils.getProperty(employee, "address.street"); PropertyUtils.setProperty(employee, "address.street", new Address("123 Main St")); ``` 通过以上示例可以看出,...

    JavaBean和beanutils工具类的学习

    4. `PropertyUtils.getProperty()`: 获取JavaBean对象的属性值,返回的是属性的实际类型。 5. 支持嵌套属性访问,如`BeanUtils.setProperty(jbc, "birthday.time", "111")`,可以设置复杂结构对象的属性。 在使用...

    BeanUtilsBean对象复制使用(类型可以自动转化)

    然而,需要注意的是,这种方法也存在一些潜在问题,比如可能会覆盖掉原本存在于目标对象中的值,或者在类型转换失败时抛出异常。因此,在实际使用中,我们需要根据具体需求和场景权衡其优缺点。 总之,Apache ...

    BeanUtils-jar包

    1. `PropertyUtils.getProperty(Object bean, String propertyName)`: 这个方法可以用来获取JavaBean的指定属性值。`bean`参数是JavaBean实例,`propertyName`是需要获取的属性名。 2. `PropertyUtils.setProperty...

    commons-beanutils-1.8.0.zip

    你可以通过PropertyUtils.getProperty()来获取属性值,用PropertyUtils.setProperty()来设置属性值。它支持链式属性访问,例如"person.address.city",这在处理复杂对象结构时非常有用。 2. **Descriptor Support**...

    beanutils-1.8.3

    开发者可以通过导入这个jar,然后调用BeanUtils类库提供的各种静态方法,如`PropertyUtils.getProperty()`用于获取对象的属性值,`PropertyUtils.setProperty()`用于设置属性值,以及`BeanUtils.copyProperties()`...

    -beanutils-1.9.4.zip

    例如,`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法可以无须手动创建setter和getter方法,直接通过属性名操作对象的属性值。 2. **类型转换:** BeanUtils包含了一套强大的类型转换机制,能...

    struts2 sort实例

    Comparable<?> prop1 = (Comparable) PropertyUtils.getProperty(o1, field); Comparable<?> prop2 = (Comparable) PropertyUtils.getProperty(o2, field); return prop1.compareTo(prop2); } } ``` 在Struts...

    Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier

    这篇文章将对比分析Apache BeanUtils、PropertyUtils、Spring BeanUtils以及Cglib BeanCopier这四个常用的Bean复制工具的性能和特点。 首先,Apache BeanUtils是Apache Commons项目的一部分,提供了一系列便捷的...

    beanutils的jar包

    `PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法允许你通过字符串形式的属性名来操作对象的属性,这样就不需要事先知道属性的确切名称。这在处理动态属性或者处理来自数据库或其他数据源的未知...

    有关动态bean的一些用法

    对于动态Bean,我们可以通过PropertyUtils.setProperty()方法来设置属性值,这与普通的JavaBean的setter方法类似,只是不需要预先定义setter方法。 下面是一个使用动态Bean的简单示例: 1. 首先,我们创建...

    java-property-utils-1.9.jar

    String dbUrl = PropertyUtils.getProperty(props, "database.url"); ``` 以上就是关于`java-property-utils-1.9.jar`库的一些核心功能和使用方式。这个库是Java开发者处理配置文件的得力助手,能有效提升项目的可...

    Java Bean 遍历和使用注解给Bean的属性添加属性值

    - **Apache Commons BeanUtils**:提供了一套方便的工具方法,用于Bean的属性遍历和值设置,如`PropertyUtils.getPropertyDescriptors(Class<?> beanClass)`可获取Bean的属性描述符。 - **Spring Framework**:...

    BeanUtils详细讲解.pdf

    PropertyUtils.getSimpleProperty(Object bean, String name)用于获取简单属性,而PropertyUtils.setSimpleProperty(Object bean, String name, Object value)用于设置简单属性。 - **Indexed-Collection**: 用于...

    commons-beanutils-1.8.0

    通过`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法,可以实现对JavaBean属性的读写操作。 2. **类型转换**:BeanUtils具有自动类型转换的能力,它可以将字符串、数字等不同类型的值转换为...

    commons-beanutils所有版本(1.0-1.9.2).zip

    例如,`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`可以用来获取和设置属性值。 3. **类型转换**: BeanUtils库还包含一个强大的类型转换机制,允许在不同数据类型之间自动转换,如`ConvertUtils....

Global site tag (gtag.js) - Google Analytics