Lombok
Lombok 能以简单的注解形式来简化 java 代码,提高开发人员的开发效率。例如开发中经常需要写的 javaBean,都需要花时间去添加相应的 getter/setter,也许还要去写构造器、equals 等方法,而且需要维护,当属性多时会出现大量的 getter/setter 方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。
Lombok 能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString 方法。出现的神奇就是在源码中没有 getter 和 setter 方法,但是在编译生成的字节码文件中有 getter 和 setter 方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。
常用注解
注解 | 描述 |
---|---|
@Data | @Data 注解在类上,会为类的所有属性自动生成 setter/getter、equals、canEqual、hashCode、toString 方法,如为 final 属性,则不会为该属性生成 setter 方法。 |
@Getter/@Setter | 此注解在属性上,可以为相应的属性自动生成 Getter/Setter 方法,也可是直接声明在 class 上。 |
@NonNull | @NonNull 注释用于空检查的需要。当放置在 Lombok 生成 setter 方法的字段上时,将生成空检查,这将导致 NullPointerException 应该提供 null 值。此外,如果 Lombok 为拥有类生成构造函数,则该字段将添加到构造函数签名中,并且 null 检查将包含在生成的构造函数代码中。 |
@Cleanup | 该注解能帮助我们自动调用 close() 方法,很大的简化了代码。 |
@EqualsAndHashCode | 默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成 equals 和 hasCode,也能通过 exclude 注解来排除一些属性。 |
@ToString | 使用 @ToString 注解,Lombok 会生成一个 toString() 方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。通过将 includeFieldNames 参数设为 true,就能明确的输出 toString() 属性。 |
@NoArgsConstructor | 无参构造器 |
@RequiredArgsConstructor | 部分参数构造器 |
@AllArgsConstructor | 全参构造器 |
IDEA 使用 Lombok
1.先引入依赖包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>version</version>
</dependency>
2.安装插件:搜索 lombok 关键字安装好就可以用了。