Lombok:@RequiredArgsConstructor从final创建构造函数,但不是从@NotNull创建

问题描述 投票:0回答:1

我正在尝试使用@RequiredArgsConstructor创建基本的Recipe类,但是Lombok似乎没有正确创建所需的args构造函数。尽管它将成功创建其他构造函数,例如@AllArgsConstructor,但即使我有用@NotEmpty / @NotNull注释的值,所需的args构造函数也为空。我已经仔细检查了我是否已导入RequiredArgsConstructor

这是我的课程的精简版本:

@RequiredArgsConstructor
public class Recipe
{
    @NotEmpty
    String name;

    @NotNull
    ArrayList<Ingredient> ingredients;

    @NotNull
    ArrayList<String> steps;

    // Time in mins
    int time;

    String creator;
}

由Lombok创建的构造函数(我在构建的类文件中检查了它为空。)>

请注意,当我在班级中将@NotNull字段定为final时,Lombok将创建适当的必需args构造函数:

public Recipe(String name, ArrayList<Ingredient> ingredients, ArrayList<String> steps) {
        this.name = name;
        this.ingredients = ingredients;
        this.steps = steps;
    }

所以它看起来好像忽略了@NotNull批注。对于在此可能做错的任何指导,我将不胜感激。谢谢!

我正在尝试使用@RequiredArgsConstructor创建基本的Recipe类,但是Lombok似乎没有正确创建所需的args构造函数。虽然它将成功创建其他...

java constructor lombok intellij-lombok-plugin
1个回答
0
投票

我错误地解释了Project Lombok文档,该文档说:“所有未初始化的final字段都具有参数,以及任何标记为@NonNull且未在声明位置初始化的字段。”

© www.soinside.com 2019 - 2024. All rights reserved.