0

在我的项目中,我使用 lombok 库来隐藏代码的样板部分。目前我正在尝试自动生成大量数据,所以我为此选择了 benas/jPopulator 库——这似乎正是我所需要的。

问题是我收到以下异常:

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

虽然没有其他 setter 和 getter,但 Lombok 似乎 jPopulator 没有看到它们。虽然代码编译得很好并且应用程序运行得很好。

有没有办法让这两个库一起工作?

更新 似乎问题不在于 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

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

唯一的问题是有没有办法通过 maven 使用主版本?

4

1 回答 1

0

正如第 42 期所讨论的,问题在于 lombok@Accessors(chain = true)生成不符合 Java Bean 标准定义的流畅的 getter 和 setter。这就是为什么 apache commonPropertyUtils.setProperty找不到标准制定者的原因。

jPopulator 旨在填充标准Java Bean。

关于如何通过 maven Central 使用当前的快照版本,请参见此处

希望这可以帮助。亲切的问候。马哈茂德

于 2015-12-17T20:18:53.407 回答