首页 > 编程知识 正文

省电神器(教你用一串代码)

时间:2023-05-04 17:43:59 阅读:84431 作者:4780

转载来源: 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 代码。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。