一、前言

在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。比如看下图我写的代码,一个@Data注解搞定,彻底抛弃set get方法。

import java.io.Serializable;

import lombok.Data;

@Data

public class LoginVo implements Serializable{

private String password;

private String phone;

}

本文的重点是讲解如何在AndroidStudio中集成Lombok,因为这个玩意我也是从后台的哥们那里get到的,后台开发工具用的是IDEA,依赖库用的是Maven,我们知道Android中开发工具用的是AndroidStudio,依赖库咱们用的是Gradle。集成方式还是有蛮大区别的。

二、Lombok集成到AndroidStudio

1、配置lombok.config文件

项目根目录下面新建配置文件 lombok.config,同时填上对应的配置项(lombok.anyConstructor.suppressConstructorProperties=true),Java项目不需要,Android和Java还是有点区别的,不配置有的注解使用不了,编译不过。

image.png

2、引入依赖库

provided "org.projectlombok:lombok:1.16.18"

compile 'org.glassfish:javax.annotation:10.0-b28'

image.png

3、安装Lombok Plugin插件

下图我已经安装好了插件了,具体怎么安装我就不多说了,直接搜Lombok就可以装了。

image.png

4、使用Lombok

比如我在类的上面加一个@Data,就不用再写set get方法了

package com.jilian.mydemo.common.vo;

import java.io.Serializable;

import lombok.Data;

@Data

public class LoginVo implements Serializable{

private String password;

private String phone;

}

而且我还能正常使用set get方法

/**

* 登录

*

* @param phone

* @param pwd

*/

public void login(String phone, String pwd) {

LoginVo vo = new LoginVo();

vo.setPassword(pwd);

vo.setPhone(phone);

loginliveData = getRepository(UserRepository.class).login(vo);

}

其实set get方法是有的,我们看下图。

image.png

三、关于报错

我的是AndroidSudio3.2.1,在使用 Lombok的时候报如下错误:

Annotation processors must be explicitly declared now.

解决方案:

android {

defaultConfig {

//在下面添加这句话,然后重新编译,就OK了。

javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } }

}

四、常用注解

@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法

@Setter :注解在属性上;为属性提供 setting 方法

@Getter :注解在属性上;为属性提供 getting 方法

@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象

@NoArgsConstructor :注解在类上;为类提供一个无参的构造方法

@AllArgsConstructor :注解在类上;为类提供一个全参的构造方法

@Cleanup : 可以关闭流

@Builder : 被注解的类加个构造者模式

@Synchronized : 加个同步锁

@SneakyThrows : 等同于try/catch 捕获异常

@NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常

@Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。

@toString:注解在类上;为类提供toString方法(可以添加排除和依赖);

官方文档https://projectlombok.org/features/index.html

import lombok 报错_Android上使用Lombok和set、get方法告别相关推荐

  1. import lombok 报错_Lombok快速入门

    Lombok介绍: Lombok其实就是取名自龙目岛(Pulau Lombok),龙目岛是印度尼西亚西努沙登加拉(Nusa Tenggara Barat)省岛屿,西隔龙目海峡面对巴厘岛,东隔阿拉斯(A ...

  2. import lap报错ValueError

    import lap报错ValueError: numpy.ndarray has the wrong size, try recompiling. Expected 88, got 96 问题:首先 ...

  3. 在cmd下import cv2报错——OpenCV实现BRISK

    平台:win10 x64 +JetBrains PyCharm 2018.2.4 x64 +Anaconda3(python3.7.0+opencv3.4.5) Issue说明:同学发了个python ...

  4. python3.8使用from aip import AipBodyAnalysis报错 cannot import name AipBodyAnalysis解决办法

    from aip import AipBodyAnalysis报错 cannot import name AipBodyAnalysis 我使用的python3.8 # -*- coding: utf ...

  5. windows10下,from skimage import morphology 报错的解决办法

    windows10下,from skimage import morphology 报错的解决办法 报错原因 没有安装numpy+mkl库 解决方法 卸载skimage pip uninstall s ...

  6. Windows anaconda python3 import ssl报错的解决方案

    Windows anaconda python3 import ssl报错的解决方案_dailinqing1984的博客-CSDN博客

  7. python import requests报错_import requests 出错,搜了很多,没解决,求教.

    requests 依赖的库都已经安装了. Requirement not upgraded as not directly required: chardet<3.1.0,>=3.0.2 ...

  8. Python与机器视觉(x)windows下import cv2报错dll

    pip install 直接安装opencv_python 有时会与windows中的python版本不匹配,造成import 错误 import cv2 报错 ImportError: DLL lo ...

  9. Altium Designer中PCB关于Import Changes报错最终解决方案

    Altium Designer中PCB关于Import Changes报错最终解决方案 参考文章: (1)Altium Designer中PCB关于Import Changes报错最终解决方案 (2) ...

最新文章

  1. 熟悉Linux的环境实验报告,实验1 熟悉Linux开发环境 实验报告
  2. 功能自动化工具watiJ(转载)
  3. dnspod-sr的安装和使用
  4. php判断字符串中是否包含某字符串
  5. C语言编程数出1到100的整数中出现了多少次数字9
  6. linux acl库编译与使用,linux的ACL-rds数据删除了可恢复吗?-WinFrom控件库|.net开源控件库|HZHControls官网...
  7. HDU4081 Qin Shi Huang's National Road System(次小生成树)
  8. Wordvec_句子相似度
  9. windwos11降级,重装Windows10
  10. 漫反射及具体光源的照明
  11. 小srf的游戏(单调队列+dp)
  12. 顺序查找 折半查找 二叉排序树
  13. 对docker一些认知
  14. mysql utf8 gbk_MySql中UTF8 和 GBK 编码中文字符长度问题
  15. 吉隆坡Mac高清动态壁纸
  16. 云栖科技评论第40期:斯坦福大学研发出易弯曲的有机半导体集成电路
  17. miui主题编辑器和java jdk_安装高版本 JDK 后 Appium 和 uiautomatorviewer 的一个坑
  18. Linux下mongodb安装配置教程
  19. 法国计算机学校排名2015,法国大学2015年排名情况
  20. 请求数据出现200(from disk cache)

热门文章

  1. 地理数据库 (geodatabase) 的架构
  2. 如何解决微服务的数据一致性分发问题
  3. Kafka设计原理看了又忘,忘了又看?
  4. 深入浅出学Hive:Hive内建操作符与函数开发
  5. Python 进阶之路 (十) 再立Flag, 社区最全的itertools深度解析(中)
  6. Mysql 索引 n-gram分词引擎使用
  7. 前端面试题集结号之CSS
  8. VisNetic MailServer 常见问题
  9. at org.apache.coyote.http11.AbstractOutputBuffer.checkLengthBeforeWrite
  10. CentOS安装fortune+cowsay