Lombok

官网连接:https://projectlombok.org/java

什么是 Lombok

Lombok 是一个 Java 库,它能够经过添加注解的方式,为 Java 类自动插入相应的 Getter/Setter,构造器,equals 方法等。这样就省去了手动重建代码的麻烦,简化开发,也是代码更为简洁。eclipse

固然,Lombok 也支持使用注解为 Java 类添加 Builder,自动注入日志记录变量等。ide

为何使用 Lombok (优劣)

优势ui

显然,使用 Lombok 能够大量减小项目中的模版代码。虽然开发过程当中能够经过 IDE 快速生成这些代码,但当 Java 类的变量发生变化,或者协做开发过程当中有代码冲突,这无疑增长了咱们无谓的工做量。this

其次,Lombok 还能够加强代码的规范性,经过 @Data 注解能够自动添加包括 toString 在内的模版方法,避免了这些方法缺失,也省去了因变量修改而修改 toString,equals 方法的麻烦。插件

缺点日志

Lombok 的项目集成和使用,它须要 IDE 和项目都要支持。不过这不麻烦。code

安装

IntelliJ IDEAxml

  1. 打开 File/Setting 或 快捷键 Ctrl+Alt+S
  2. 选择 Plugins
  3. 搜索插件 IntelliJ Lombok plugin 并安装
  4. 重启 IDEA 即完成

STS/Eclipse继承

  1. 下载 lombok.jar
  2. 将 lombok.jar 放在sts(eclipse)安装目录下,和 sts.ini 文件平级的
  3. 在lombok.jar 的目录下,运行:java -jar lombok.jar,在弹出框中指定 STS/Eclipse 安装目录,点击安装
  4. 查看 sts.ini,正常状况应该多个一行配置:-javaagent:XXX\lombok.jar

依赖添加

<lombok.version>1.18.6</lombok.version>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>${lombok.version}</version>
    <scope>provided</scope>
</dependency>

使用介绍

按使用频率从上及下排列

@Data

@Data@ToString@EqualsAndHashCode,全部字段上加@Getter,全部非 final 字段加@Setter@RequiredArgsConstructor的快捷方式。它提供了这些注解的默认配置,用于知足最基本 Java 类配置。

注意:@Data 注解时,以 $- 开头的字段不会被自动注入对应方法,包括 @Getter, @Setter, @ToString和@EqualsAndHashCode 内不会包含这个字段。

@Getter @Setter

给字段添加 Getter/Setter 方法,能够添加到类或字段上。若是同时添加,以字段上的配置为准。但都会被显示声明的方法覆盖。

对于一些 boolean 类型的字段,须要注意 is- 开头的字段。但对于引用类型 Boolean 无此影响。

@Getter @Setter public boolean isFlower;
@Getter @Setter public Boolean isTree;
// getter
public boolean isFlower() { return this.isFlower; };
// setter
public void setFlower(boolean isFlower) {
    this.isFlower = isFlower;
}
// getter
public boolean getIsTree() { return this.isTree; };
// setter
public void setIsTree(boolean isTree) {
    this.isTree = isTree;
}

@Getter 和 @Setter 能够经过指定 PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE, NONE 设置访问权限。

@ToString

添加 toString 方法。

注意,若是一个类继承父类,默认插入的 toString 是不会添加父类字段。要添加父类的字段,须要使用 @ToString(callSuper = true)

去除字段名,能够设置 includeFieldNames = false 默认为true

屏蔽字段,能够在字段声明时添加 @ToString.Exclude

@ToString.Exclude private String name;

@EqualsAndHashCode

添加 equals hashCode 方法。

默认状况下,任何以$符号开头的变量都会自动排除。只能经过标记来包含它们@EqualsAndHashCode.Include

@EqualsAndHashCode.Exclude 用来屏蔽指定字段。

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

添加构造方法。

设置 access = AccessLevel.PRIVATE 能够指定构造方法的访问权限。权限包括(PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE, NONE),默认 PUBLIC。

@AllArgsConstructor 会替换掉默认的无参构造方法。如需同时存在无参构造方法和有参构造方法,能够同时添加 @NoArgsConstructor

注意事项

  1. 优先级:显示声明>字段上加注解>类上加注解

更多使用的用例,能够查询官网的详细内容。

相关文章
相关标签/搜索