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
分享到:
相关推荐
String name = (String) PropertyUtils.getProperty(person, "name"); System.out.println("Name: " + name); // 输出:Name: John Doe } } ``` 3. 类型转换:BeanUtils还提供了自动类型转换的能力,这意味着你...
在这个例子中,`PropertyUtils.getProperty()`方法来自Apache Commons BeanUtils库,用于获取对象的指定属性值。这个比较器可以接受任何具有`compareTo()`方法的对象,只要对应的属性是可比较的。 4. **使用通用...
1. 使用Class.forName静态方法 这种方法可以通过类的全路径名来获取Class对象,前提是已明确类的全路径名。例如:`Class clazz1 = Class.forName("com.reflection.User");` 2. 使用.class方法 这种方法可以通过类的...
Address address = (Address) PropertyUtils.getProperty(employee, "address.street"); PropertyUtils.setProperty(employee, "address.street", new Address("123 Main St")); ``` 通过以上示例可以看出,...
4. `PropertyUtils.getProperty()`: 获取JavaBean对象的属性值,返回的是属性的实际类型。 5. 支持嵌套属性访问,如`BeanUtils.setProperty(jbc, "birthday.time", "111")`,可以设置复杂结构对象的属性。 在使用...
然而,需要注意的是,这种方法也存在一些潜在问题,比如可能会覆盖掉原本存在于目标对象中的值,或者在类型转换失败时抛出异常。因此,在实际使用中,我们需要根据具体需求和场景权衡其优缺点。 总之,Apache ...
1. `PropertyUtils.getProperty(Object bean, String propertyName)`: 这个方法可以用来获取JavaBean的指定属性值。`bean`参数是JavaBean实例,`propertyName`是需要获取的属性名。 2. `PropertyUtils.setProperty...
你可以通过PropertyUtils.getProperty()来获取属性值,用PropertyUtils.setProperty()来设置属性值。它支持链式属性访问,例如"person.address.city",这在处理复杂对象结构时非常有用。 2. **Descriptor Support**...
开发者可以通过导入这个jar,然后调用BeanUtils类库提供的各种静态方法,如`PropertyUtils.getProperty()`用于获取对象的属性值,`PropertyUtils.setProperty()`用于设置属性值,以及`BeanUtils.copyProperties()`...
例如,`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法可以无须手动创建setter和getter方法,直接通过属性名操作对象的属性值。 2. **类型转换:** BeanUtils包含了一套强大的类型转换机制,能...
Comparable<?> prop1 = (Comparable) PropertyUtils.getProperty(o1, field); Comparable<?> prop2 = (Comparable) PropertyUtils.getProperty(o2, field); return prop1.compareTo(prop2); } } ``` 在Struts...
这篇文章将对比分析Apache BeanUtils、PropertyUtils、Spring BeanUtils以及Cglib BeanCopier这四个常用的Bean复制工具的性能和特点。 首先,Apache BeanUtils是Apache Commons项目的一部分,提供了一系列便捷的...
`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法允许你通过字符串形式的属性名来操作对象的属性,这样就不需要事先知道属性的确切名称。这在处理动态属性或者处理来自数据库或其他数据源的未知...
对于动态Bean,我们可以通过PropertyUtils.setProperty()方法来设置属性值,这与普通的JavaBean的setter方法类似,只是不需要预先定义setter方法。 下面是一个使用动态Bean的简单示例: 1. 首先,我们创建...
String dbUrl = PropertyUtils.getProperty(props, "database.url"); ``` 以上就是关于`java-property-utils-1.9.jar`库的一些核心功能和使用方式。这个库是Java开发者处理配置文件的得力助手,能有效提升项目的可...
- **Apache Commons BeanUtils**:提供了一套方便的工具方法,用于Bean的属性遍历和值设置,如`PropertyUtils.getPropertyDescriptors(Class<?> beanClass)`可获取Bean的属性描述符。 - **Spring Framework**:...
PropertyUtils.getSimpleProperty(Object bean, String name)用于获取简单属性,而PropertyUtils.setSimpleProperty(Object bean, String name, Object value)用于设置简单属性。 - **Indexed-Collection**: 用于...
通过`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法,可以实现对JavaBean属性的读写操作。 2. **类型转换**:BeanUtils具有自动类型转换的能力,它可以将字符串、数字等不同类型的值转换为...
例如,`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`可以用来获取和设置属性值。 3. **类型转换**: BeanUtils库还包含一个强大的类型转换机制,允许在不同数据类型之间自动转换,如`ConvertUtils....