Lombok简介(加快Java开发)

Hi Guys, today I am going to talk about Project Lombok. This blog post is divided into 3 parts:

  1. 介绍设置(使用IntelliJ想法)龙目岛注释

1. Introduction

Lombok是一个Java库,可帮助减少样板代码。 这样您就可以更加专注于实际代码。 例如 一个简单的POJO类由属性,getters / setter(构造函数)组成,因此在这里Lombok将通过添加注释来帮助您自动生成Getter / Setters(和构造函数)。

2. Setup

  1. Check your Idea build number. Go to Help -> About About

  2. Download Lombok plugin for Idea IntelliJ https://plugins.jetbrains.com/plugin/6317 as per your build number.

  3. Goto File -> Settings -> Type Plugins in search text box at top left. Plugin Settings

  4. Now click Install plugin from disk. button and select the downloaded Lombok Plugin.

  5. You are done now

In case you are using eclipse please refer to This Blog Post.

3. Lombok Annotations

Lombok has many different types of annotations for different tasks. You can view the full list of annotations here. In this blog, we will discuss the following annotations.

  1. @ Getter / @ Setter@ToString和@EqualsAndHashCode@NonNull@ NoArgsConstructor,@ RequiredArgsConstructor和@AllArgsConstructor@数据@值@Builder@清理

首先,您需要在类路径中添加Lombok依赖项。 如果使用的是maven,则在pom.xml中添加以下相关性。

Gradle用户将在build.gradle文件中添加以下依赖项。

1. @Getter/@Setter

每个人都熟悉普通POJO中的Getters / Setters。 生成getter / setter并不是一项艰巨的任务,如今,IDE已经足够聪明,可以为您生成代码,但它会增加LOC,并且管理它们可能会很麻烦。 龙目岛只需添加即可帮助您生成吸气剂/定型剂@盖特和@Setter. By default generated methods type is public but you can change the type by overriding value property of @盖特/@Setter which takes AccessLevel enum type. Available AccessLevel enum values are [PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE, NONE]. If you set the value to AccessLevel.NONE那么将不会生成任何getter / setter。

您也可以在类级别添加这些注释。 它将为所有字段生成getter,为所有非最终字段和非静态字段生成setter。

上面的代码相当于

注意:@Setterwillnotworkonfinalfields.

2. @ToString and @EqualsAndHashCode

@ToString和@EqualsAndHashCode产生toString(),等于(对象对象)和hashCode()在我们的pojo中。 默认情况下@ToString includes Classname和all non-static fields. You can specify fields in 的 property 的 @ToString。 您还可以通过以下方式排除字段排除属性。

默认情况下@EqualsAndHashCode包括非静态和非瞬态字段。 您可以通过提供以下内容来包含或排除字段的和排除财产(与@ToString)。 它具有称为callSuper which invokes superclass’s implementation 的 hashCode()和等于()。 默认情况下,它不会调用超类方法。 您可以通过将其值设置为来覆盖它真正。

3. @NonNull

此注释将为任何字段生成空检查。 它可以与构造函数参数,字段或方法参数一起使用。

上面的代码相当于

4. @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

@NoArgsConstructor将生成默认构造函数。如果您的班级包含final字段,则将生成编译错误。因此,如果您要使用默认值为最终字段集生成默认构造函数力=真@NoArgsConstructor(force=true).

上面的代码相当于

@RequiredArgsConstructor如果您的类包含final字段或任何标有的字段,则将生成构造函数@ lombok.NotNull然后它将生成参数化的构造函数,并将这些字段添加到构造函数args中,并将空检查添加到构造函数中。

上面的代码相当于

@AllArgsConstructor将生成参数化的构造函数,并将所有字段作为构造函数args。

上面的代码相当于

注意:如果要使用私有构造函数生成静态工厂方法,请设置静态名称@xxxConstructor的属性。

上面的代码相当于

5. @Data

@数据注释只能与Class一起使用,并且涵盖以下注释:

  • @盖特@Setter@RequiredArgsConstructor@ToString@EqualsAndHashCode@值 Above code is equvalant to
6. @Value

@值用于创建不可变的POJO。 默认情况下,类和所有字段均设为final,并且不会生成设置器。 就像@数据它也会产生toString(),hashCode()和等于()。 如果您不想将字段定为最终字段,请用@NonFinal。

Above code is equivalent to
7. @Builder

@Builder is used to generate builder API pattern. It generates an inner class called <YourClassName>Builder which expose builder pattern-based setters. @单数用于@Builder并且仅对java.util.List类型。 此批注将添加到加法器方法中,一个用于单个元素,另一个用于完整集合。

Above code is equivalent to
8. @Cleanup

@清理帮助自动关闭资源。 该注释采用一个参数作为关闭方法的名称。 默认情况下,其值为关。

Above code is equivalent to

快乐编码😀😀😀! 如果您有任何反馈意见,请在下面进行评论。

from: https://dev.to//jeetmp3/introduction-to-lombok-speeding-up-java-development-5add

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值