Lombok安装,原理及教程,nice!!!
面对工作中大量重复的,毫无技术含量 get()、set()方法,你是不是抱怨过?
那你听说过 Lombok 吗?
那你知道 Lombok 还有哪些鲜为人知的秘密吗?
Lombok 简介
Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
翻译
Lombok 项目是一个 Java 库,它会自动插入您的编辑器和构建工具中,从而使您的 Java 更加生动有趣。永远不要再写另一个 getter 或 equals 方法,通过注解您的类有一个功能全面的生成器,自动化您的日志记录变量等等。
示例
用@Data 代替所有成员的 getter,setter 方法,用@ToString 代替 toString 方法。
@ToString
@Data
public class Account implements Serializable {
private Integer id;
private Integer uid;
private Double money;
private User user;
}
Lombok 原理
JSR 269:插件化注解处理 API(Pluggable Annotation Processing API)
原理图流程如下:
Lombok 安装
- javac
- 拷贝 jar 到类路径
- javac -cp lombok.jar …
- Maven
- pom 引入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
- Intellij IDEA
- 安装 Lombok 插件
安装完成后,可以在 Structure可以在 View -> Tool Windows -> Structure 或者 Alt +7中看到下图即安装成功:
Lombok 常用注解
@Getter 和@Setter
可以放在成员上或者类上来生成 getter 和 setter 方法只对成员变量起作用,对于类变量不起作用,final 类型常量只有 getter 方法
@Getter(AccessLevel.PROTECTED)
这个就是将 getter 方法的类型修饰符变为 protected
@Getter(AccessLevel.NONE)
这个就是某些成员不想添加 getter 方法可以不添加.
@ToString
@Getter
public class Account implements Serializable {
private static final long serialVersionUID = 7063222791609347900L;
private Integer id;
private Integer uid;
private Double money;
@Getter(AccessLevel.NONE)
private User user;
}
toString
功能:打印对象字符串
-
@ToString(exclude = ("money"))
打印的时候将 money 字段排除在外 -
@ToString(of =("成员变量或者静态变量") )
打印时只输出 of 里边的变量。
@EqualsAndHashCode
@EqualsAndHashCode (exclude = ("money"))
在生成的 equals,canEqual,hashCode 方法中不会出现 money 变量的比较。
@NonNull
帮助我们省掉一些判断是否为空的代码
public void test(@NonNull String s){
System.out.println(s);
}
@Test
public void test1(){
new Account().test(null);
}
结果:
java.lang.NullPointerException: s is marked non-null but is null
@NoArgConstructor 和@RequiredArgsConstructor 和@AllArgConstructor
@NoArgConstructor无参构造器
@RequiredArgsConstructor(未赋值的 final 常量,加入@NonNull 的成员变量)
@AllArgConstructor`全参构造区
@Data
集成了
- @Getter/@Setter
- @ToString
- @EqualsAndHashCode
- @NonNull
- @RequiredArgsConstructor
@Builder
@Builder 类似于函数式编程,假如以后会生成
在你需要赋值的时候,你可以
@Data
@Builder
public class Account implements Serializable {
private Integer id;
private Integer uid;
private Double money;
@Test
public void test1(){
Account account = Account.builder().id(1).uid(2).money(2.0).build();
System.out.println(account);
}
}
@Log
输出日志
val
val map = new HashMap<String,Integer>();
我们可以在定义的时候一律用val代替
@Cleanup
比如最常见的 InputStream 流每次打开后都要关闭,我们可以在
@Cleanup Inputstream in = new FileInputStream("filepath");
这样我们可以省去关闭流的麻烦
OVER!如果这篇文章对你有帮助的话,不胜感激!!!
本文地址:https://blog.csdn.net/qq_43688587/article/details/107391678
上一篇: BaaS服务的定义、发展以及未来
下一篇: 设置超链接文本修饰教程
推荐阅读
-
PS磨皮滤镜软件Portraiture3汉化安装教程及使用方法图解(附下载)
-
babel的使用及安装配置教程
-
proteus7.8怎么安装?proteus7.8sp2安装破解及汉化图文详细教程
-
Vue xStream 2015.2安装及破解教程详细图解(附下载)
-
UG NX12.0怎么安装?NX12.0安装教程及破解方法图文详解
-
视频转gif软件ILike Video to GIF Converter安装及激活教程(附激活补丁+软件下载)
-
Tipard Video Converter Ultimate安装及激活图文教程(附注册表下载)
-
TimelineFX怎么激活 粒子效果制作软件RigzSoft TimelineFX安装及激活图文教程
-
multisim10.0 汉化版安装教程 图文(附激活码及破解序列号)
-
linux主机AMH管理面板安装教程及建站使用方法(图文)