【问题标题】:Using lombok with Spring将 lombok 与 Spring 一起使用
【发布时间】:2014-01-24 11:25:26
【问题描述】:

我想知道是否可以将Lombok 与Spring 一起使用,因为在我的项目中我得到了堆栈跟踪,因为我没有getter 或setter 方法,但我输入了@getter 和@setter我的代码中的注释。

@Data
public class EmailBean {

    @Getter @Setter
    private String contato;
    @Getter @Setter
    private String contatoCopia;
    @Getter @Setter
    private String copiaOculta;
    @Getter @Setter
    private String titulo;
    @Getter @Setter
    private String mensagem;

    @Getter @Setter
    private List<Contato> listaContatosSelecionados;
    @Getter @Setter
    private Set<String> setEmails;

    @Getter @Setter
    private boolean mostrar;

    @Getter @Setter
    private EmailHelper helper;
    @Getter @Setter
    private EmailFilter filter;

    public boolean mostrarListener() {
        this.mostrar = true;
        return this.mostrar;
    }
}

那么任何人都可以帮助我吗?

【问题讨论】:

  • 您所有的 @Getter 和 @Setter 注释都毫无意义。把他们放在课堂上就足够了。此外,@Data 已经这样做了。所以删除它们并给我们堆栈跟踪。
  • 您是否同时使用 Lombok 和 AspectJ 编译器? -- 我用 Spring 和 AspectJ 尝试过 Lombok 一次(2012 年底),并注意到带有 Spring 的 Lombok 没有问题,但是带有 AspectJ 和 Eclipse 的 Lombok 效果不佳。
  • @maaartinus 我还有其他疑问,我可以覆盖例如setter方法吗?如果我需要做一些逻辑?
  • @Ralph 我正在使用 Eclipse...按照 maaartinus 所说的做,它正在工作。
  • 在您的示例中,您只需要@Data。使用 getter/setter 编写不同的类来验证它们是否已生成。 javadoc 就足够了,更多信息请参见project page。

标签: spring lombok


【解决方案1】:

您可能需要覆盖 canEquals。请参阅http://projectlombok.org/features/EqualsAndHashCode.html 了解更多信息。

【讨论】:

  • 如果您在项目代码中不使用@Data 和@EqualsAndHashCode 注释,是否会生成equals hashCode 和canEqual 方法?
  • 如果您不使用任何 lombok 注释,例如 @Data、@Value 或 @EqualsAndHashCode,lombok 将不会生成这些方法。
  • 我也遇到了同样的问题,你能给出代码示例吗?我将 '@Data 和 \@EqualsAndHashCode 添加到我的班级,但我仍然得到“没有找到类型返回值的转换器”
  • 我还在另一个运行中添加了 equals 和 hashCode 函数,它们只返回虚拟值,仍然得到相同的错误。
【解决方案2】:

所以你的@Getter 和@Setter 注释是多余的。 @Data 将 getter 和 setter 应用于类中的所有字段。

【讨论】:

    猜你喜欢
    • 2017-03-21
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    相关资源
    最近更新 更多