还在为IntelliJ Lombok 插件烦恼吗?来这里带你一起飞

IntelliJ Lombok 插件安装

打开Intellij,选择file→Settings→Plugins→MarketPlace→安装Lombok点击apply应用
在这里插入图片描述
在这里插入图片描述

IntelliJ Lombok 注解

Lombok 简介

Lombok主要用来简化,减少代码的编写。使代码看起来更清晰,简洁。只需要加注解,不用再写get、set、toString、equals和hashCode方法了

Lombok 注解说明

注解 解释
@val 用作局部变量声明的类型,而不必实际编写该类型。执行此操作时,将从初始化程序表达式中推断类型。局部变量也将成为最终变量。此功能仅适用于局部变量和foreach循环,不适用于字段。初始化表达式是必需的。val实际上是某种“类型”,并在lombok包中作为真实类存在。您必须导入它以使val起作用(或lombok.val用作类型)。局部变量声明中此类型的存在会触发final关键字的添加以及复制覆盖“ fake” val类型的初始化表达式的类型。警告:此功能当前在NetBeans中不起作用
@Getter and @Setter 省略pojo(实体类)中的setter与getter方法
@FieldNameConstants 生成包含用于在你的类的每个字段1个恒定的内型; 要么是字符串常量(标记为public static final,类型为的字段java.lang.String),要么是每个字段具有1值的枚举类型-编写@FieldNameConstants(asEnum = true)枚举变量
@ToString 可以对任何类定义进行注释,@ToString以使lombok生成该toString()方法的实现。默认情况下,它将按顺序打印您的班级名称以及每个字段,并以逗号分隔。
@EqualsAndHashCode 平等变得容易:从对象的字段生成hashCode和equals实现
@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor 按顺序构造的构造函数:生成不带参数的构造函数,每个final / non-null字段一个参数,或者每个字段一个参数。
@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger, @CustomLog @Log在lombok v0.10中添加了 各种变体。 lombok 0.10中的新增功能:您可以使用日志注释来注释任何类,以使lombok生成记录器字段。记录器的名称log和字段的类型取决于您选择的记录器。lombok v1.16.24中的新功能:添加了Google的FluentLogger(通过@Flogger)。lombok v1.18.10中的新增功能:添加后@CustomLog,您可以通过配置如何使用配置键创建记录器来添加任何记录器。
@Data 产生所有其通常与简单的POJO(普通旧式Java对象)和豆类相关的样板。自动为所有字段添加@ToString, @EqualsAndHashCode, @Getter方法,为非final字段添加@Setter,和@RequiredArgsConstructo
@Builder 生产络合剂的API为你的类
@SuperBuilder 生产络合剂的API为你的类。与相比@Builder,@SuperBuilder还可用于超类的字段。但是,它仅适用于类型,并且自定义的可能性受到限制。最重要的是,它要求所有超类也都具有@SuperBuilder注释。
@Singular :-------------
@Delegate 可以对任何字段或无参数方法进行注释,@Delegate以使lombok生成将调用转发给该字段的委托方法(或调用此方法的结果)
@Value @Value是的不变变体@Data; 所有字段由private和final默认情况下,也不会产生setter方法。该类本身也是final默认设置的,因为不可改变性不能强加于子类
@Accessors 用于配置lombok如何生成和查找getter和setter
@Wither 不变属性的二传手的第二个最佳选择是构造对象的克隆,但为此字段添加一个新值。产生此克隆的方法正是@With产生的withFieldName(newValue)方法:一种产生克隆的方法,除了相关字段的新值。
@With 不变属性的二传手的第二个最佳选择是构造对象的克隆,但为此字段添加一个新值。产生此克隆的方法正是@With产生的withFieldName(newValue)方法:一种产生克隆的方法,除了相关字段的新值。
@SneakyThrows 用于在不实际在方法的throws子句中声明的情况下偷偷地抛出检查的异常
@var 用作局部变量声明的类型,而不必实际编写该类型
experimental @var var的工作方式完全一样val,只是局部变量没有被标记为final。该类型仍然完全从强制初始化程序表达式派生,并且任何进一步的赋值(现在都是合法的)(因为该变量不再是final)都不再考虑确定适当的类型
@UtilityClass 实用程序类是仅是函数的名称空间的类。它的实例不能存在,并且其所有成员都是静态的
@Lombok config system 实用程序类是仅是函数的名称空间的类。它的实例不能存在,并且其所有成员都是静态的
@Code inspections :-------------
@Refactoring actions (lombok and delombok) :-------------

@val 解读

总览

val用作局部变量声明的类型,而不必实际编写该类型。执行此操作时,将从初始化程序表达式中推断类型。局部变量也将成为最终变量。此功能仅适用于局部变量和foreach循环,不适用于字段。初始化表达式是必需的。

val实际上是某种“类型”,并在lombok包中作为真实类存在。您必须导入它以使val起作用(或lombok.val用作类型)。局部变量声明中此类型的存在会触发final关键字的添加以及复制覆盖“ fake” val类型的初始化表达式的类型。

警告:此功能当前在NetBeans中不起作用。

支持的配置键:

lombok.val.flagUsage= [ warning| error](默认值:未设置)
val如果已配置, Lombok会将任何使用标记为警告或错误。

小字

对于复合类型,将推断出最常见的超类,而不是任何共享接口。例如,bool ? new HashSet() : new ArrayList()是具有复合类型的表达式:结果AbstractCollection以及Serializable。推断的类型将是AbstractCollection,因为它是一个类,而是Serializable一个接口。

在不明确的情况下,例如当初始化表达式是null,java.lang.Object推断。

@Getter和@Setter 解读

总览

使用@Getter和/或注释任何字段@Setter,以使lombok自动生成默认的getter / setter。
默认的getter只是返回该字段,并getFoo在调用该字段foo(或isFoo字段的类型为boolean)时命名。setFoo如果该字段名为foo,则返回默认的setter ,返回void,并接受与该字段相同类型的1个参数。它只是将字段设置为此值。

public除非您明确指定一个AccessLevel,否则 生成的getter / setter方法将是,如下面的示例所示。法律访问级别PUBLIC,PROTECTED,PACKAGE,和PRIVATE。

您还可以在类上添加@Getter和/或@Setter注释。在这种情况下,就好像您使用该注释来注释该类中的所有非静态字段一样。

您始终可以使用特殊AccessLevel.NONE访问级别来手动禁用任何字段的getter / setter生成。这使您可以重写的行为@Getter,@Setter或@Data对类注解。

要将注释放在生成的方法上,可以使用onMethod=@({@AnnotationsHere}); 要将注释放在生成的setter方法的唯一参数上,可以使用onParam=@({@AnnotationsHere})。不过要小心!这是一项实验功能。有关更多详细信息,请参阅onX功能的文档。

lombok v1.12.0中的新增功能:字段上的javadoc现在将被复制到生成的getter和setter中。通常情况下,所有的文字被复制,且@return被移动到吸气剂,而@param线移动的制定者。移动的意思是:从字段的javadoc中删除。还可以为每个获取器/设置器定义唯一的文本。为此,您创建一个名为GETTER和/或的“部分” SETTER。一节是Javadoc中的一行,其中包含2个或多个破折号,然后是文本“ GETTER”或“ SETTER”,后接2个或多个破折号,并且该行上没有其他内容。如果您使用的部分,@return并@param剥离该部分不再做(移动@return或@param进线部分)。

支持的配置键:

lombok.accessors.chain= [ true| false](默认值:false)
如果设置为true,则返回的生成器将this(而不是void)返回。注释的显式配置chain参数@Accessors优先于此设置。
lombok.accessors.fluent= [ true| false](默认值:false)
如果设置为true,所产生getter和setter不会与前缀豆标准’ get,is或set; 相反,这些方法将使用与字段相同的名称(减去前缀)。注释的显式配置chain参数@Accessors优先于此设置。
lombok.accessors.prefix+ = 字段前缀(默认值:空列表)
这是一个列表属性;条目可以与+=操作员一起添加。可以使用-=运算符删除父配置文件中继承的前缀。Lombok将从字段名称中删除任何匹配的字段前缀,以便确定要生成的getter / setter的名称。例如,如果m是此设置中列出的前缀之一,则名为的字段mFoobar将导致名为getFoobar()而不是的吸气剂getMFoobar()。注释的显式配置prefix参数@Accessors优先于此设置。
lombok.getter.noIsPrefix= [ true| false](默认值:false)
如果设置为true,则为boolean字段生成的getter 将使用get前缀而不是默认is前缀,并且任何生成的调用getter的代码(例如)@ToString也将使用get代替is
lombok.setter.flagUsage= [ warning| error](默认值:未设置)
@Setter如果已配置, Lombok会将任何用法标记为警告或错误。
lombok.getter.flagUsage= [ warning| error](默认值:未设置)
@Getter如果已配置, Lombok会将任何用法标记为警告或错误。
lombok.copyableAnnotations= [ 完全限定类型的列表 ](默认值:空列表)
Lombok会将这些注释中的任何一个从字段复制到setter参数以及getter方法。请注意,lombok附带了“现成的”一堆注释,这些注释是可复制的:所有流行的nullable / nonnull注释。

小字

为了生成方法名称,该字段的第一个字符(如果是小写字符)将用标题区分大小写,否则将保持不变。然后,以get / set / is为前缀。

如果已经存在具有相同名称(不区分大小写)和相同参数计数的方法,则不会生成任何方法。例如,即使getFoo()已经存在一种方法,getFoo(String… x)即使在技术上可以制造该方法也不会生成。存在此警告以防止混淆。如果由于这个原因而跳过了方法的生成,则会发出警告。Varargs计为0到N个参数。您可以标记任何方法@lombok.experimental.Tolerate以将其从lombok中隐藏。

对于boolean以is紧随其后的标题大小写字母开头的字段,将不加前缀以生成吸气剂名称。

的任何变化boolean都不会导致使用is前缀而不是get前缀;例如,返回java.lang.Boolean结果是get前缀,而不是is前缀。

流行库中的许多注释表示非空,例如javax.annotation.Nonnull,如果出现在字段中,则会在生成的setter中导致显式的null检查。

各种关于可空性的众所周知的注释(例如org.eclipse.jdt.annotation.NonNull)会自动复制到正确的位置(用于getter的方法,用于setter的参数)。您可以指定应始终通过lombok 配置键 复制的其他注释lombok.copyableAnnotations。

您可以使用@Getter或@Setter注释为类添加注释。这样做等效于用该注释注释该类中的所有非静态字段。@Getter/ @Setter字段上的注释优先于类上的注释。

使用AccessLevel.NONE访问级别不会产生任何结果。它是有用的,只有结合@Data或类范围@Getter或@Setter。

@Getter也可以用于枚举。@Setter不能,不是出于技术原因,而是出于一个务实的理由:枚举的设置者是一个非常糟糕的主意。

@FieldNameConstants 解读

总览

该@FieldNameConstants注释生成包含用于在你的类的每个字段1个恒定的内型; 要么是字符串常量(标记为public static final,类型为的字段java.lang.String),要么是每个字段具有1值的枚举类型-编写@FieldNameConstants(asEnum = true)枚举变量。@FieldNameConstants对于各种编组和序列化框架很有用。常量字段(无论是枚举值还是字符串常量)始终与字段,大小写和所有字段具有完全相同的名称,除非您lombok.fieldNameConstants.uppercase = true在lombok.config文件中设置了该选项;否则,在这种情况下,龙目岛将尝试使用UPPER_CASE该名称。

生成的内部类型默认为Fields,名为public。您可以通过@FieldNameConstants(innerTypeName = “FieldNames”, access = AccessLevel.PACKAGE)例如对此进行修改。默认的内部类型名称也可以通过配置键进行修改lombok.fieldNameConstants.innerTypeName。生成的字段始终为public。

必须应用于类(或枚举,尽管您很少想要这样做)。默认情况下,包括所有非瞬态,非静态字段。您可以@FieldNameConstants.Include在+字段中使用@FieldNameConstants(onlyExplicitlyIncluded = true),或@FieldNameConstants.Exclude进行更细粒度的控制。

支持的配置键:

lombok.fieldNameConstants.flagUsage= [ warning| error](默认值:未设置)
@FieldDefaults如果已配置, Lombok会将任何用法标记为警告或错误。
lombok.fieldNameConstants.innerTypeName= 字符串(默认值:“字段”)
由lombok生成的内部类型的名称可以使用此配置密钥来控制。
lombok.fieldNameConstants.uppercase= [ true| false](默认值:false)
如果为true,则尝试大写所生成的字段。

小字

从lombok v1.18.6开始,lombok将无提示地跳过生成任何已存在的内容。您可以Fields自己定义内部枚举/类,在这种情况下,lombok将添加您尚未编写的所有枚举常量/公共静态最终字段。

从lombok v1.16.22到lombok v1.18.2,此功能直接在类型内部生成常量。例如,这些字段的名称会将字段exampleFieldName变成public static final String FIELD_EXAMPLE_FIELD_NAME = “exampleFieldName”;。前缀和后缀(此处为FIELD_和空字符串)是可配置的。从lombok v1.18.4开始,此功能已重新设计为生成如上所述的内部类型。

带有字符串的lombok注释的任何参数都必须提供实际的字符串文字;您不能引用由生成的常量@FieldNameConstants。如果您想使用@FieldNameConstants在以例如填充of和/或exclude参数@ToString和类似的龙目岛的注释,使用@ToString.Include/ @ToString.ExcludeETC系统代替; 这些功能在功能页面上进行了介绍。

像其他接触字段的lombok处理程序一样,任何名称以美元($)符号开头的字段都会被完全跳过。这样的字段根本不会被修改。静态字段也被跳过。

@ToString 解读

总览

可以对任何类定义进行注释,@ToString以使lombok生成该toString()方法的实现。默认情况下,它将按顺序打印您的班级名称以及每个字段,并以逗号分隔。

通过将includeFieldNames参数设置为true,可以为toString()方法的输出增加一些清晰度(但也要有一些长度)。

默认情况下,将打印所有非静态字段。如果要跳过某些字段,可以用注释这些字段@ToString.Exclude。另外,您可以使用精确指定要使用的@ToString(onlyExplicitlyIncluded = true)字段,然后使用标记每个要包含的字段@ToString.Include。

通过设置callSuper为true,可以将超类实现toString的输出包含到输出中。请注意,toString()in 的默认实现java.lang.Object几乎没有意义,因此除非扩展了另一个类,否则您可能不想这样做。

您还可以在中包含方法调用的输出toString。只能包含不带参数的实例(非静态)方法。为此,用标记方法@ToString.Include。

您可以更改用于标识成员的名称@ToString.Include(name = “some other name”),也可以通过更改成员的打印顺序@ToString.Include(rank = -1)。没有等级的成员被认为是等级0,等级更高的成员首先被打印,等级相同的成员以它们在源文件中出现的顺序打印。

支持的配置键:

lombok.toString.includeFieldNames= [ true| false](默认值:true)
通常,lombok为每个字段生成toString响应的片段,形式为fieldName = fieldValue。如果将此设置设置为false,则lombok将忽略该字段的名称,而只需部署所有字段值的逗号分隔列表。注释参数’ includeFieldNames’(如果已明确指定)优先于此设置。
lombok.toString.doNotUseGetters= [ true| false](默认值:false)
如果设置为true,则lombok将在生成toString方法时直接访问字段,而不使用gett

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦昼初心

您你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值