使用Lombok,是否可以指定一个arg构造函数?
我的目的是使用Lombok注释创建一个构造函数,如下所示.
class MyClass {
private String param;
private Integer count;
public MyClass(String param) {
this.param = param;
}
}
Run Code Online (Sandbox Code Playgroud)
Knu*_*sen 13
我没有在文档中找到
怎么样:http://projectlombok.org/features/Constructor.html?
您必须初始化所有不应该是构造函数的变量.
@RequiredArgsConstructor为每个需要特殊处理的字段生成一个带有1个参数的构造函数.所有未初始化的final字段都会获得一个参数,以及标记为@NonNull的任何字段,这些字段在声明它们时未初始化.对于标有@NonNull的字段,还会生成显式空检查.
所以下面应该创建一个argument(param)构造函数:
@RequiredArgsConstructor class MyClass {
private String param;
private Integer count = -1;
}
Run Code Online (Sandbox Code Playgroud)
maa*_*nus 12
Lombok不允许您准确指定字段,但有3个注释可供选择.同
@RequiredArgsConstructor class MyClass {
private final String param;
private Integer count;
}
Run Code Online (Sandbox Code Playgroud)
你可以的.如果没有内联和或初始化,则需要参数.final@NonNull
@RequiredArgsConstructor和@NonNull是解决上述问题的两个重要关键。因为@RequiredArgsConstructor创建了一个构造函数,其中的字段由@NonNull注释注释。
@RequiredArgsConstructor
class MyClass {
@NonNull
private String param;
private Integer count;
}
Run Code Online (Sandbox Code Playgroud)
这相当于:
class MyClass {
private String param;
private Integer count;
public MyClass(String param) {
this.param = param;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29490 次 |
| 最近记录: |