Android上使用Lombok和set、get方法告别
转载:Android上使用Lombok和set、get方法告别
一、前言
在项目中使用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还是有点区别的,不配置有的注解使用不了,编译不过。
2、引入依赖库
provided "org.projectlombok:lombok:1.16.18"
compile 'org.glassfish:javax.annotation:10.0-b28'
3、安装Lombok Plugin插件
下图我已经安装好了插件了,具体怎么安装我就不多说了,直接搜Lombok就可以装了。
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方法是有的,我们看下图。
三、关于报错
我的是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
上一篇: 用bs4完成html中标签中文本的爬取
下一篇: mysql的分区表的使用
推荐阅读
-
使用lombok.Data编译时无法找到get/set方法
-
详解php的魔术方法__get()和__set()使用介绍
-
Java —— 自动生成get、set方法(使用lombok的注解@Getter @Setter)
-
Android上使用Lombok和set、get方法告别
-
maven项目添加lombok并解决使用@data注解无set/get方法的问题
-
Spring Boot 使用lombok插件 无需写get/set方法
-
使用Lombok运行时找不到get/set方法
-
Springboot-使用lombok取消get\set、tostring()方法
-
详解php的魔术方法__get()和__set()使用介绍
-
php中的__get()和__set()方法的使用