一、简介:Lombok是什么
Lombok官网:https://projectlombok.org
Lombok.jpg
Lombok项目是一种自动接通你的编辑器和构建工具的一个Java库。不用再一次写额外的getter或者equals方法。
二、Lombok 优点
Lombok的两点主要原因就是:
(1)、简化冗余的JavaBean代码;
(2)、大大提高JavaBean中方法的执行效率;
三、安装使用
打开 IDEA 的 Settings 面板,并选择 Plugins 选项,然后点击 “Browse repositories”
在输入框输入”lombok”,得到搜索结果,点击安装,然后安装提示重启 IDEA,安装成功;
lombok安装.jpg
四、Maven依赖引入
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope></dependency>
备注:scope=provided,说明它只在编译阶段生效,不需要打入包中。事实正是如此,Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件。
五、UserInfo 实体类为例(set,get,toString 方法)
@Getter@Setter@ToStringpublic class UserInfo implements Serializable
六、Lombok 其他注解
@Setter@Getter@Data@Log(这是一个泛型注解,具体有很多种形式)@AllArgsConstructor@NoArgsConstructor@EqualsAndHashCode@NonNull@Cleanup@ToString@RequiredArgsConstructor@Value@SneakyThrows@Synchronized
七、Lombok 常用注解使用详解
1、@Data
该注解使用在类上,该注解会提供getter、setter、equals、canEqual、hashCode、toString方法。
注意的是,同时使用@Data 和 @AllArgsConstructor 后 ,默认的无参构造函数失效,如果需要它,要重新设置 @NoArgsConstructor
2、@Cleanup
@Cleanup InputStream in = new FileInputStream(args[0]);@Cleanup OutputStream out = new FileOutputStream(args[1]);
3、@val
类型推导
val example = new ArrayList<String>();
example.add("Hello, World!");
对应的转换后代码就是:
val example = new ArrayList<String>();
example.add("Hello, World!");
4、@ NonNull
public NonNullExample(@NonNull Person person) { this.name = person.getName();
}
转换后就是:
public NonNullExample(@NonNull Person person) { if (person == null) { throw new NullPointerException("person");
} this.name = person.getName();
}
5、@ SneakyThrows
暗中抛出异常,当我们需要抛出异常,在当前方法上调用,不用显示的在方法名后面写 throw
@SneakyThrows(Exception.class)
6、@ SneakyThrows
该注解使用在方法上,这个注解用在 方法 上,可以将方法中的代码用 try-catch 语句包裹起来,捕获异常并在 catch 中用 Lombok.sneakyThrow(e) 把异常抛出,可以使用 @SneakyThrows(Exception.class) 的形式指定抛出哪种异常。该注解需要谨慎使用。
private final Object lock = new Object();@Synchronized("lock")public void foo() { // Do something}
7、@toString
该注解使用在类上,该注解默认生成任何非讲台字段以名称-值的形式输出。
1、如果需要可以通过注释参数includeFieldNames来控制输出中是否包含的属性名称。
2、可以通过exclude参数中包含字段名称,可以从生成的方法中排除特定字段。
3、可以通过callSuper参数控制父类的输出。
总结:Lombok的目的是减少代码的重复编写,并提供比较好的解决方案。也存在一些争议性的注解,大家可以根据实际场景进项使用。
贡献者
IT实战联盟-Line
---------------END----------------
后续的内容同样精彩
长按关注“IT实战联盟”哦
注意:本文归作者所有,未经作者允许,不得转载