2017-10-15 103 views
0

我將bean/pojo值從一個bean複製到另一個bean。Beanutils類上的未知屬性:pinkyMoreAndMore作品pMoreAndMore不

Beanutils很好地完成了這項工作。

今天早上我碰到了這引起了

Unknown property on class 

異常的性質。

的屬性的名字是「pMoreAndMore」,是由()可信任Lombok的像getPMoreAndMore

我試圖複製使用以下屬性名「pMoreAndMore」值來產生getter和setter,但是這造成例外的上方。

在網上搜索了一下,但沒有找到太多,所以我將我的屬性重命名爲「pinkyMoreAndMore」(使用getPinkyMoreAndMore()生成getter),並使用屬性名稱「pinkyMoreAndMore」與beanutils進行值複製。

這裏沒問題。

爲什麼會「pinkyMoreAndMore」工作,但「pMoreAndMore」會導致錯誤? 可能這是一個邊緣案例,當談到camelcase等?

+1

你可以用'PMoreAndMore'測試嗎?我還有其他地方碰到了一個情況,那裏的lombok getter默認名稱不是某些bean util的東西所期望的。或者指示lombok生成setter,比如'getpMoreAndMore','getPmoreAndMore'?只是爲了看看是否是這樣。 – pirho

+0

@pirho我確實給了「PMoreAndMore」一個鏡頭,而且這個鏡頭很有效。很奇怪,我認爲你是正確的,在這些情況下,龍捲風和beanutils之間是不相容的。很高興知道! –

回答

1

的Java Bean規範是有點更絕,人們commongly認爲:

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

根據specificationpMoreAndMore吸氣應該被命名爲getpMoreAndMore()。這是BeanUtils期望的。 Lombok關於屬性訪問者命名的一些常見錯誤應該被認爲是一個錯誤。

請參考以下文章Java Tip #6 - Don't capitalize first two letters of a bean property name瞭解更多更詳細的說明。

+0

歡呼@Aleh。我在lombok github上創建了一個問題:https://github.com/rzwitserloot/lombok/issues/1496 –