介绍
Lombok是一个Java实用工具,通过注解方式,简化Java代码
比如:不需要实现set()、get()方法
使用
- 需要在开发工具上安装插件
- 在pom.xml中添加依赖
- 在代码中添加适当的注解
idea安装lombok
mac系统入口
安装插件
重新启动即可
在pom.xml中添加lombok依赖
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
使用注解
注解概览
@Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法,相当于同时加上以下注解@Setter @Getter,@ToString,@EqualsAndHashCode
@NoArgsConstructor:注解在类上; 会生成一个返回类对象的静态工厂方法。
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
@Log : 根据不同的注解生成不同类型的
log对象,但是实例名称都是log,有六种可选实现类,这里只列出2种@Value: 用在类上,相当于为属性添加final声明,只提供getter方法,而不提供setter方法
@Getter(lazy=true) : 可以替代经典的Double Check Lock样板代码
@ToString:生成toString方法,默认情况下,会输出类名、所有属性,属性按照顺序输出,以逗号分割。
@EqualsAndHashCode:实现equals()方法和hashCode()方法
@Builder:构建 建造者模式
@NonNull:该注解快速判断是否为空,如果为空,则抛出java.lang.NullPointerException
@Synchronized:该注解自动添加到同步机制,有趣的是,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上
@RequiredArgsConstructor:注解在类上;为类提供一个部分参的构造方法(使用类中所有带有@NonNull注解的或者带有final修饰的成员变量生成对应的构造方法)
@Cleanup:用于确保已分配的资源被释放,如IO的连接关闭
@SneakyThrows:抛异常
@Accessors: 用于配置getter和setter方法的生成结果
val:用在局部变量前面,相当于将变量声明为final
@Data 解释
注解在类上;提供类所有属性的 get 和 set 方法,此外还提供了equals、canEqual、hashCode、toString 方法,相当于同时加上以下注解@Setter,@Getter,@ToString,@EqualsAndHashCode
@Data
public class Person {
private String name;
private String address;
private String city;
private String state;
private String zip;
private Date brithday;
}
@NoArgsConstructor 解释
注解在类上;为类提供一个无参的构造方法
@Data
@NoArgsConstructor
public class Student {
private long id = new Long(0);
private String name = " ";
private String className = " ";
}
@Slf4j 解释
可直接使用log对象
@Slf4j
public class StudentTest {
public static void main(String[] args) {
log.info("Here is some INFO");
}
}
更多解释参见下面链接
https://juejin.im/post/5dde71ddf265da06051d00ab
https://juejin.im/post/5a6eceb8f265da3e467555fe
感谢:
https://juejin.im/post/5a6eceb8f265da3e467555fe

