Java 如何使用Lombok指定单参数构造函数?
使用Lombok,是否可以指定一个单参数构造函数 我的意图是使用Lombok注释创建一个构造函数,如下面的构造函数Java 如何使用Lombok指定单参数构造函数?,java,lombok,Java,Lombok,使用Lombok,是否可以指定一个单参数构造函数 我的意图是使用Lombok注释创建一个构造函数,如下面的构造函数 class MyClass { private String param; private Integer count; public MyClass(String param) { this.param = param; } } 我在文档中没有找到 使用以下命令: 您必须初始化所有不应属于构造函数的变量 @RequiredArg
class MyClass {
private String param;
private Integer count;
public MyClass(String param) {
this.param = param;
}
}
我在文档中没有找到
使用以下命令:
您必须初始化所有不应属于构造函数的变量
@RequiredArgsConstructor为每个需要特殊处理的字段生成一个具有1个参数的构造函数。所有未初始化的最终字段都会获得一个参数,以及任何标记为@NonNull且未在声明位置初始化的字段。对于标记为@NonNull的字段,还将生成显式null检查
因此,下面应该创建一个单参数(param
)构造函数:
@RequiredArgsConstructor class MyClass {
private String param;
private Integer count = -1;
}
Lombok不允许您精确地指定字段,但有3个注释可供选择。与
@RequiredArgsConstructor class MyClass {
private final String param;
private Integer count;
}
你可以得到它。如果未进行内联初始化,则需要参数,
final
或@NonNull
@RequiredArgsConstructor
和@NonNull
是解决上述问题的两个重要关键。因为@RequiredArgsConstructor
创建了一个带有字段的构造函数,这些字段由@NonNull
注释注释
@RequiredArgsConstructor
类MyClass{
@非空
私有字符串参数;
私有整数计数;
}
这相当于:
class-MyClass{
私有字符串参数;
私有整数计数;
公共MyClass(字符串参数){
this.param=param;
}
}
Yes有什么问题吗?但我不需要使用构造函数设置整数计数。所以@RequiredArgsConstructor不是我的情况。我做了编辑。我没有运行lombok,那么它会生成什么?@KnutKnutsen“RequiredArgsConstructor”仅用于最终字段。对于所有可能错过它的人,它是非空的(自定义lombok注释),而不是著名的@NotNull。我希望他们使用NotNull而不是TEADE切换如果没有final
关键字,这将无法工作