2015-12-02 93 views
0

在我的項目中,我使用lombok庫來隱藏代碼的樣板部分。目前我正在嘗試自動生成大量數據,因此我選擇了benas/jPopulator庫 - 這看起來正是我需要的。如何使benas/jPopulator與lombok一起工作

的問題是,我得到以下異常:

java.lang.NoSuchMethodException: Property '***' has no setter method in class *** 

儘管目前還沒有其他的getter和setter方法,但是龍目島的一個似乎jPopulator沒有看到他們。雖然代碼編譯良好,應用程序運行良好。

有沒有辦法讓這兩個庫一起工作?

UPDATE 看來,這個問題是不是與jPopulator本身,而是與底層庫org.apache.commons.beanutils.PropertyUtilsBean,它無法找到訪問方法和失敗。在主版本jPopulator男人的另一面開始設置自己的屬性:

https://github.com/benas/jPopulator/blob/jpopulator-1.2.0/src/main/java/io/github/benas/jpopulator/impl/PopulatorImpl.java#L185 VS

https://github.com/benas/jPopulator/blob/master/jpopulator-core/src/main/java/io/github/benas/jpopulator/impl/PopulatorImpl.java#L260

唯一的問題是那裏通過Maven來使用主版本的方法嗎?

回答

0

正如在issue 42中討論的那樣,問題在於lombok的@Accessors(chain = true),它產生不符合Java Bean標準定義的流暢的getter和setter。這就是爲什麼apache常見的PropertyUtils.setProperty沒有找到標準的setter。

jPopulator旨在填充標準 Java Bean。

關於如何通過maven central使用當前快照版本,它被記錄爲here

希望這會有所幫助。 親切的問候。 Mahmoud