我试图用@RequiredArgsConstructor
创建一个基本配方类,但Lombok似乎没有正确创建所需的args构造函数。虽然它将成功创建其他构造函数,例如@allargsconstuctor
,但即使我使用@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
字段为最终字段时,Lombok将创建适当的所需args构造函数:
public Recipe(String name, ArrayList<Ingredient> ingredients, ArrayList<String> steps) {
this.name = name;
this.ingredients = ingredients;
this.steps = steps;
}
因此,它似乎忽略了@NotNull
注释。我将感谢任何关于我可能在这里做错了什么的指导。谢谢你!
我错误地解释了项目Lombok留档,它说“所有未初始化的最终字段都获得一个参数,以及任何标记为@NonNull
但在声明位置未初始化的字段。”
我认为@NonNull
是指从javax中标记为
,而实际上它的字面意思是@NotNull
或等效项的任何字段。验证。限制。NotNull/NotEmpty@NonNull
来自lombok。非空
。
@adilooze解决方案
我学到了两件事: -操作符创建一个新实例,然后执行声明的connstuctor来初始化该新实例 根据我的理解,这些说法互相反对。 例如,不会创建两个实例,因为-操作符创建一个实例,构造函数调用并创建另一个实例?当然不会,但现在到底是什么创建了一个实例。。。?
问题内容: 我想我需要反射包才能做到这一点。说我有一个像这样的结构: 说我想生成ResolutionValue结构的JSON表示…是否有某种方法可以创建不实例化的JSON表示? 问题答案: 即使使用反射,也需要使用实际值来获取类型。因此,我建议您只使用类型的零值。
我在nodeJS中有一个主要的谷歌云功能。在这个函数中,我希望通过编程在同一个项目中创建另一个云函数。这个新的云函数的代码可以存储在谷歌云存储的zip文件中。我试着跟着这里的导游走:https://cloud.google.com/functions/docs/reference/rest/v1/projects.locations.functions/create 我能够在测试模拟器中运行查询,
我想让我的子组件有一个ref,但是我不希望用户在创建组件时必须指定ref。所以说我有这样的东西: 我希望父组件能够访问子组件的状态。最简单的方法是为每个组件添加一个ref,但我希望这是在函数中完成的,以便从最终用户那里抽象出它,因为我希望这些组件被通用化。 有没有一种干净的方法可以让父组件访问子组件的状态,例如当创建子组件时,您有以下内容: 因此,在父类内部,我可以执行以下操作: 因此,我希望能够
-----编辑----- 这个问题Docker映像和容器之间有什么区别?没有回答我的问题。 我的问题是:为什么我们需要从图像而不是从DockerFile创建容器?首先从Dockerfile创建映像,然后再创建容器的目的/好处是什么?