繁体   English   中英

如何使用 Lombok 指定单参数构造函数?

[英]How can I specify a one-argument constructor using Lombok?

使用 Lombok,是否可以指定单参数构造函数?

我的目的是使用 Lombok 注释来创建一个构造函数,如下所示。

class MyClass {
    private String param;
    private Integer count;

    public MyClass(String param) {
        this.param = param;
    }
}

Lombok 不允许您准确指定字段,但有 3 个注释可供选择。

@RequiredArgsConstructor class MyClass {
    private final String param;
    private Integer count;
}

你可以得到它。 如果没有初始化 inline 和final@NonNull需要一个参数。

我在文档中没有找到

使用这个: http : //projectlombok.org/features/Constructor.html

您必须初始化所有不应属于构造函数的变量。

@RequiredArgsConstructor 为每个需要特殊处理的字段生成一个带有 1 个参数的构造函数。 所有未初始化的 final 字段都获得一个参数,以及任何标记为 @NonNull 且未在声明位置初始化的字段。 对于那些标有@NonNull 的字段,还会生成一个显式的空检查。

所以下面应该创建一个单参数( param )构造函数:

@RequiredArgsConstructor class MyClass {
     private String param;
     private Integer count = -1;
}

@RequiredArgsConstructor@NonNull是解决上述问题的两个重要关键。 因为@RequiredArgsConstructor创建了一个带有由@NonNull注释注释的字段的构造函数。

@RequiredArgsConstructor
class MyClass {
    @NonNull
    private String param;
    private Integer count;
}

这相当于:

class MyClass {
    private String param;
    private Integer count;

    public MyClass(String param) {
        this.param = param;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM