@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor相关的知识,希望对你有一定的参考价值。

参考技术A 专注于github, 有需要几千github star 出售5000多个github 账号, 需要联系V微信 eryuechanghe

在Lombok中,生成构造方法的annotation一共有三个,@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsContructor。使用这三个annotation来完成项目中对于不同构造方法的需求。

@NoArgsConstructor : 生成一个无参数的构造方法,这个annotation在与其他的annotation配合起来使用的时候更加能凸显出他的重要性,例如在使用hibernate这种框架的时候,如果有一个有参数的构造方法的时候,NoArgsConstructor会展示出他的作用。

@RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量 的构造方法。生成的构造方法是private,如何想要对外提供使用可以使用staticName选项生成一个static方法。

@AllArgsContructor: 会生成一个包含所有变量,同时如果变量使用了NotNull annotation , 会进行是否为空的校验, 我们来看一下官方给出的一个例子:

使用了lombok

未使用lombok

@AllArgsConstructor 在生成的构造函数上会生成一@ConstructorProperties 的Java annotation, 当然也可以通过将suppressConstructorProperties 设置为true来禁用@ConstructorProperties 。 如果你知道@ConstructorProperties 是干什么用的,那么一定就知道@NoArgsConstructor为什么没有这个配置参数了。

提示一点:@ConstructorProperties 只能用在JDK 6 中

Lombok简化Java代码

导包:import lombok.Data;

Lombok简化Java代码:

在Lombok中,生成构造方法的annotation一共有三个:
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsContructor。
使用这三个annotation来完成项目中对于不同构造方法的需求。
@NoArgsConstructor : 生成一个无参数的构造方法,这个annotation在与其他的annotation配合起来使用的时候更加能凸显出他的重要性,
例如在使用hibernate这种框架的时候,如果有一个有参数的构造方法的时候,NoArgsConstructor会展示出他的作用。
@RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量 的构造方法。生成的构造方法是private,如何想要对外提供使用可以使用staticName选项生成一个static方法。
@AllArgsContructor: ?会生成一个包含所有变量,同时如果变量使用了NotNull annotation , 会进行是否为空的校验


下面介绍几个我常用的 lombok 注解:
        @Data   :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
        @Setter:注解在属性上;为属性提供 setting 方法
        @Getter:注解在属性上;为属性提供 getting 方法
        @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
        @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
        @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

以上是关于@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor的主要内容,如果未能解决你的问题,请参考以下文章

text requêteexpress1

sql Requêteimbriquée

Torch实现ReQU,和梯度验证

REDTful风格设计接口

整理树形结构数据

Lombok简化Java代码