简化实体类之lombok

你还在为写很长getter,setter方法而苦恼吗?你还在写重复无意义而必须要写的代码而烦心吗?
那就来用lombok吧,简化代码,你值得拥有.

使用前的准备

添加maven依赖

1
2
3
4
5
6
7
8
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
</dependencies>

IDEA编辑器添加Lombok插件(必须)

  1. Go to File > Settings > Plugins
  2. Click on Browse repositories…
  3. Search for Lombok Plugin
  4. Click on Install plugin
  5. Restart IntelliJ IDEA

开始使用

lombok提供了很多的注解,使用这些注解可以简化大量代码

常用功能

  • @Getter / @Setter
    可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别

  • @EqualsAndHashCode
    默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。

  • @ToString
    生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割

  • @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
    无参构造器、部分参数构造器、全参构造器,当我们需要重载多个构造器的时候,Lombok就无能为力了。

  • @Data
    包含@ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,基本上使用这个注解就足够了。

拓展

Lombok features

  • var
  • @NonNull
  • @Cleanup
  • @Value
  • @Builder
  • @SneakyThrows
  • @Synchronized
  • @Getter(lazy=true)
  • @Log
  • 还有一些试验版的