Bean Spec和apache-commons-beanutils(getter的大小写)

时间:2012-12-14 10:51:12

标签: apache-commons-beanutils

我们有一个名为:

的字段的Bean
private String aBcde = ... ;
吸气剂写道:

public String getABcde() {
    return aBcde;
}

但是

http://javasourcecode.org/html/open-source/commons-beanutils/commons-beanutils-1.8.0/org/apache/commons/beanutils/PropertyUtilsBean.java.html

报告“NoSuchMethodError”

问题:getter的名称是错误的,还是BeanUtils中的错误?

请注意,这样可以正常工作:

public String getaBcde() {
  ...
}

1 个答案:

答案 0 :(得分:1)

根据http://blog.950buy.com/article/javabean-specification-on-a-few-you-should-know/,似乎我的期望是错误的

public String getaBcde() {
  ...
}

是对的。

实际上,Bean Spec说:

“但是为了支持偶尔使用所有大写字母名称,我们检查名称的前两个字符是否都是大写字母,如果是这样,请不要理它。例如:

  • “FooBah”变成“fooBah”
  • “Z”变为“z”
  • “网址”变为“网址”“

所以在我的情况下,我得到了“getABcde”,它映射到属性“ABcde”,参见URL示例。