当前位置: 首页 > 知识库问答 >
问题:

android java 引入了 lombok 使用 getter setter 注解无效?

赫连琦
2023-08-31

使用的 IntelliJ IDEA 2022.3.1 (Ultimate Edition IDE,android 项目中在build.gradle 引入了 lombok 插件用于自动生成 getter/setter

// https://mvnrepository.com/artifact/org.projectlombok/lombokcompileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.28'

idelombok 插件插件已经启用。

image.png

image.png

以下两种用法都不生效:

第一种

@Getter@Setterpublic class IndexUserApiRequestDTO {    private String gender;    private String size;    private String page;    private String sortColumn;    private String sortType;}

第二种

public class User {        @Accessors(chain = true)    public staic class UserArchive {        @Getter @Setter        private String userId;        @Getter @Setter        private String gender;    }}

执行构建的时候各种提示: cound find accessor ... 就是提示没有找到对应的 getter/setter。这是为什么?

共有1个答案

康元凯
2023-08-31

如果在 Android 项目中使用 Lombok,你需要进行一些额外的配置才能使 Lombok 注解生效。

首先,请确保你在 build.gradle 文件中正确使用了 Lombok 插件。你已经在你的 build.gradle 文件中添加了以下配置:

compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.28'

但是这样只是将 Lombok 注解添加到编译路径中,并不会自动应用它们。

在 IntelliJ IDEA 中,你需要进行如下配置:

  1. 确保你安装了 Lombok 插件。你提到你已经安装了 Lombok 插件,在你的屏幕截图中也可以看到该插件已启用。
  2. 在 IntelliJ IDEA 的设置中启用 Lombok 注解处理器:

    • 打开 IntelliJ IDEA 设置。
    • 在左侧导航栏中,选择 "Build, Execution, Deployment" > "Compiler" > "Annotation Processors"。
    • 勾选 "Enable annotation processing" 选项。
    • 在 "Annotation Processors" 选项卡中,确保 "Enable annotation processing" 处于选中状态。
    • 在 "Generated sources directories" 选项卡中,添加 project/module/build/generated/source/apt 目录。

在完成上述配置后,重新构建你的项目,Lombok 的注解应该可以起作用了。

 类似资料:
  • 我有一把刀: 问题是,当我试图使用DAO进行加载调用时,使用DynamoDBMapper以field d1作为哈希键来获取项目,它会抛出一个DynamoDBExc0019,说:为公共DAO. getField2()找到了空键,但实际上表的值对应于field d2。问题,这是因为Lombok注释而不是手动突变代码,还是一般来说我们一起使用Lombok和DynamoDBAnnotions?

  • 我正在寻找一种优雅的方式,在标准spring服务中定义字段 如果没有龙目,我们的服务如下: 现在,我们的团队只想使用lombok构造函数(这样我们就可以轻松地添加其他服务)。上面的服务现在看起来是这样的: 如何解决这些问题(在源代码注释中提到)? 我在很多项目中都看到了这个“问题”。我上面提到的变体是我看到的唯一解决方案。当增加字段数量时,这两种解决方案都变得更加丑陋。

  • 简介:我正在使用Java与Spring boot 2.2.2和Lombok 我得到了这个示例类: 我想拦截所有用@MyAnnotation注释的“get”/“set”方法的调用。为了管理这个,我创建了这个界面: 这个类做一些操作。 最后为了测试所有,我做了一个简单的控制器 我无法激活这些切入点,我不明白为什么。你能帮我吗? 我已经在StackOverflow上看到了一些类似的问题,比如:-带注释字

  • 本文向大家介绍详解Lombok快速上手(安装、使用与注解参数),包括了详解Lombok快速上手(安装、使用与注解参数)的使用技巧和注意事项,需要的朋友参考一下 Lombok插件安装与使用说明 在实习中发现项目中IDE一直报检查错误,原来是使用了Lombok注解的黑科技,这里整理了一些日常编码中能遇到的所有关于它的使用详解,其实lombok项目的产生就是为了省去我们手动创建getter和setter

  • 这是模块类 这是我的viewmodel构造函数 当我运行应用程序时,我得到这个错误,我认为不要在模块中注入所需的应用程序上下文,任何帮助都会被赞赏 C:\XYZ\XYZ\AndroidStudioProjects\CarAndroid\app\build\generate\source\kapt\debug\com\sw\car\baseclasses\CarApp_HiltComponents.

  • 在简单使用lombok、IDE(如Netbeans)的过程中,Intellij允许使用lombok库注入的方法,例如@Getter 代码返回this.getVar()不被Test类识别。但是如果我们使用另一个类,例如Test2,在这种情况下我们可以使用getter方法。 环境: Netbeans 8.0.2 龙目岛1.16.13 Jdk 1.7 项目类型Java应用程序