【问题标题】:How to make benas/jPopulator work with lombok如何使 benas/jPopulator 与 lombok 一起工作
【发布时间】:2015-12-02 08:43:05
【问题描述】:

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

问题是我得到以下异常:

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

虽然没有其他的 setter 和 getter,但 Lombok 的 setter 和 getter 似乎 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使用master版本?

【问题讨论】:

    标签: java testing lombok intellij-lombok-plugin


    【解决方案1】:

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

    jPopulator 旨在填充 标准 Java Bean。

    关于如何通过 maven Central 使用当前的快照版本,记录在 here

    希望这会有所帮助。 亲切的问候。 马哈茂德

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多