class 上的 Beanutils 未知 属性:pinkyMoreAndMore 作品 pMoreAndMore 不

Beanutils Unknown property on class: pinkyMoreAndMore works pMoreAndMore not

我正在将 bean/pojo 值从一个 bean 复制到另一个 bean。

Beanutils 做得很好。

今天早上我遇到了一个 属性 引起了

Unknown property on class

例外。

属性 的名称是 "pMoreAndMore",getters 和 setter 是由可信赖的 lombok 生成的,例如 getPMoreAndMore()

我尝试使用以下 属性 名称 "pMoreAndMore" 复制值,但这导致了上述异常。

在网上搜索了一下,但没有找到太多,所以我将 属性 重命名为 "pinkyMoreAndMore"(生成 getter,如 getPinkyMoreAndMore())并使用 属性 name "pinkyMoreAndMore" 用 beanutils 复制值。

没问题。

为什么 "pinkyMoreAndMore" 可以工作,但 "pMoreAndMore" 会导致错误? 当涉及驼峰式等时,这可能是一个边缘案例吗?

Java bean 规范比人们普遍认为的更奇特:

property - getter
-----------------
      aa - getaa()
      aA - getaA()
      Aa - getaa()
      AA - getAA()

根据 specificationpMoreAndMore 的 getter 应该命名为 getpMoreAndMore()。这是 BeanUtils 所期望的。 Lombok 遵循一些关于 属性 访问器命名的常见错觉这一事实应该被视为一个错误。

请参阅以下文章Java Tip #6 - Don't capitalize first two letters of a bean property name以获得更长更详细的解释。