Lombok
Lombok介绍
Lombok 项目其实就是一个 java 库,它可以自动插入到编辑器和构建工具中,增强 java 的性能。以后你 只需要一些简单的注解,就可以再也不用在类中反复去写 getter、equals 等方法,让代码变得简介,不用过多地去关注相应的方法。属性修改时,也简化了维护这些属性所生成的 get、set 方法。
使用方式:
IDEA 下载 Lombok 插件
项目中导入 Lombok 的 jar 包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
</dependency>
- 在 实体类 上使用 Lombok 注解
Lombok 注解
@Data
自动创建无参构造函数、get、set、toString、hashcode、equals 方法
@AllArgsConstructor
自动创建所有参数的构造函数。可以通过access属性指定访问级别:
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@NoArgsConstructor
自动创建无参构造函数,可以通过access属性指定访问级别。
@EqualsAndHashCode
可以通过
of
属性指定参与equals
和hashcode
的字段:@EqualsAndHashCode(of = {"name", "sex"}
@ToString
@Getter
/@Setter
@Singular
在集合属性上使用该注解,可以往集合中单独增加元素。
@Builder
可以类似于链式地调用对象进行赋值。
@Data @Builder @Slf4j class Student { private String name; private int age; private int score; @Singular("addHobby") private List<String> hobby; public static void main(String[] args) { Student stu = Student.builder().name("HELLO").age(8).addHobby("read").addHobby("dance").build(); log.info("stu: {}", stu); } }
@SneakyThrows
异常处理。
@Accessors
可以通过
chain
属性,对属性进行链式操作:@Data @Slf4j @Accessors(chain = true) class Student { private String name; private int age; public static void main(String[] args) { Student stu = new Student(); stu.setName("老王").setAge(10); log.info("stu: {}", stu); } }
@FieldNameConstants
提供字符串形式的类的属性名的常量。使用方式是
Fields.
:@Data @Builder @Slf4j @FieldNameConstants class Student { private String name; private int age; public static void main(String[] args) { log.info(Fields.age); } }