转载来源: CSDN知识库
在我们的Java项目中,有很多Java Bean需要为每个属性生成get/set方法。 要添加或删除属性,必须维护这些get/set方法。
今天,我们将向大家介绍有助于简化这些代码的神器。 Lombok! 有了这个神器,你的Java Bean类代码量至少可以节省一半。
什么是Lombok?
3359 www .项目日志. org /
打开那个官网,这就是它的概要。
projectlombokisajavalibrarythatautomaticallyplugsintoyoureditorandbuildtools,spicing up your java,二者之一。
neverwriteanothergetterorequalsmethodagain.earlyaccesstofuturejavafeaturessuchasval,和much more。
也就是说,Lombok项目是一个Java库,可以自动嵌入到IDE编辑器和编译工具中。 有了这个,就不需要再写getter和equals方法了。 此外,还有val特性等。
总之,有了这个家伙,可以省去很多代码的编写,大大减少了工作量和维护的难度。
如何使用Lombok?
1、插件的安装和配置依赖关系
如上图所示,Lombok支持所有主要的IDE开发工具和编译生成工具。
在IDEA上安装Lombok插件,以防止在使用Lombok时发生编译错误。
以下是Maven的依赖关系,使用Maven打包时也可以自动生成所需的代码。
从属关系
groupid org .项目lombok/groupid
artifactIdlombok/artifactId标识
版本1.18.2 /版本
范围提供/范围
/从属关系
如果使用的是Spring Boot,则可以在名为springbootspring-boot-dependencies.POM的配置文件中定义Lombok相关性,而无需对其进行版本编号。
所以,继承版本号就行了。 当然,也可以根据需要定制版本号。
从属关系
groupid org .项目lombok/groupid
artifactIdlombok/artifactId标识
范围提供/范围
/从属关系
2、使用注释简化代码
根据IDEA的Lombok插件的特性,可以看到支持的注释。
功能
@获取和@设置器
@字段名称常数
@ToString
@EqualsAndHashCode
@AllArgsConstructor,@ requiredargsconstructorand @ noargsconstructor
@Log,@Log4j,@Log4j2,@Slf4j,@XSlf4j,@公共日志,@ JBoss日志,@Flogger
@Data
@Builder
@Singular
@Delegat
e @Value @Accessors @Wither @SneakyThrows from Intellij 14.1 @val from Intellij 15.0.2 @var from Intellij 14.1 @var from Intellij 2016.2 @UtilityClass Lombok config system Code inspections Refactoring actions (lombok and delombok)也可以去 Lombok 对应的包里面看所有支持的注解。
现在挑几个讲一下它们的用法吧!
@Getter 和 @Setter
@Getter @Setter public class User { private String name; private int age; ... // 无需生成 get/set 方法 }添加 @Getter 和 @Setter 注解用在 Java Bean 类上面,无需生成 get/ set 方法,会自动生成所有的 get/ set 方法及一个默认的构造方法。
也可以用插件来添加相应的注解。
来看下源码和生成后的代码对比。
@Getter 和 @Setter 注解也可以单独使用在字段上面,同样也会生成对应的 get/ set 方法及一个默认的构造方法。
@ToString
使用在类上,默认生成所有非静态字段以下面的格式输出,如:
public String toString(){ return "Person(userName=" + getUserName() + ", id=" + getId() + ", age=" + getAge() + ", address=" + getAddress() + ", memo=" + getMemo() + ")"; }里面也有很多参数,用来自定义输出格式。
@NoArgsConstructor
用在类上,用来生成一个默认的无参构造方法。
@RequiredArgsConstructor
用在类上,使用类中所有带有 @NonNull 注解和 final 类型的字段生成对应的构造方法。
@AllArgsConstructor
用在类上,生成一个所有参数的构造方法,默认不提供无参构造方法。
@Data
用在类上,等同于下面这几个注解合集。
@Getter@Setter@RequiredArgsConstructor@ToString@EqualsAndHashCode@Value
用在类上,等同于下面这几个注解合集。
@Getter@FieldDefaults(makeFinal=true, level=AccessLevel.PRIVATE)@AllArgsConstructor@ToString @EqualsAndHashCode}@NonNull
用在属性上,用于字段的非空检查,如果传入到 set 方法中的值为空,则抛出空指针异常,该注解也会生成一个默认的构造方法。
还有很多,这里不再撰述。
总结
本文介绍了 Lombok 及使用说明,更多的注解使用方式可以去源码里面看吧,有了这个插件,可以帮助你写出更简洁、更优雅、更漂亮的 Java 代码。