【问题标题】:How to actually make lombok annotations work for getters and setter如何真正使 lombok 注释适用于 getter 和 setter
【发布时间】:2013-06-15 03:20:47
【问题描述】:

我正在尝试使用 lombok getter 和 setter 注释。 据我所知,带注释的代码是在运行时生成的,而不是编译时生成的,那么如何借助自动生成的 getter 和 setter 来编写代码?

例如我有这样的课程

@lombok.Getters
@lombok.Setters
public class MyLombokTesting {

private String userName;

}

但是如果这些注释不是在编写代码时生成的,那么这些注释有什么用......

现在我想做这样的事情

MyLombokTesting myLombokTesting = new MyLombokTesting();
String username = myLombokTesting.getUserName();
or myLombokTesting.setUserName("some username");

但我不能做任何这些,因为在编写代码时在eclipse中没有为我生成setter和getter..

显然我可以使用一个参数构造函数来设置用户名,但是 getter 呢?

【问题讨论】:

  • 你试过Eclipse插件吗?另外,你到处都拼错了 Lombok。
  • 它用于使用 Interospection 访问属性,例如大多数 MVC 框架在将请求参数绑定到属性时做了什么,或者 Hibernate 和 ....
  • @user 好吧,您必须告诉我们什么是“lambok”,因为 Google 上没有出现任何内容。尽管您否认了,但先前强烈支持您使用拼写错误的 Lombok 库。

标签: java eclipse lombok


【解决方案1】:

首先,Lombok 会运行编译时动态更改生成的类文件。

可能,lombok 没有正确安装在您的 Eclipse 中。有关 Eclipse 中的 lombok 安装问题,请参阅 this answer

此外,注解的运行时处理并不是它们的唯一用途。 Java 5 已经附带 apt,注解处理工具,并且由于 java 6 注解可以由标准编译器 (javac) 处理。注解可以生成类文件、源文件或其他资源文件。

披露:我是Project Lombok 开发人员之一

【讨论】:

  • @Roel_Spilker 有没有办法配置 Lombok 以将 Hibernate 注释放在 Getters 而不是属性上?
  • 为什么 Setter 和 Getter 有元注释 @Target({ElementType.FIELD, ElementType.TYPE}) 但不能应用于注释?
【解决方案2】:

确保在添加 Lombok jar 和插件后重新启动 Eclipse/Intellij 或您正在使用的任何 IDE。

【讨论】:

    【解决方案3】:

    我使用 Eclipse IDE。在 pom.xml 中添加 lombok 库之前,我必须在我的计算机中安装 lombok

    第 1 步: - 在https://projectlombok.org/download下载龙目岛 - 运行命令java -jar - 重新启动你的 IDE - 完成

    第 2 步: - 将 lombok 添加到 pom.xml 文件中

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.8</version>
        <scope>provided</scope>
    </dependency>
    
    • 在您的代码中调用 getter / setter

    【讨论】:

      猜你喜欢
      • 2017-06-24
      • 2022-10-24
      • 2019-10-08
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 2017-03-15
      相关资源
      最近更新 更多