gpt4 book ai didi

java - 无法触发构造函数级别验证

转载 作者:行者123 更新时间:2023-12-05 07:15:52 25 4
gpt4 key购买 nike

我无法仅使用注释来运行构造函数参数验证。

我的代码:

@Data
@Validated
public class TestConstructorLevel
{
private int a;
private int b;

private Integer nullValue;

public TestConstructorLevel( int a, int b, @NotNull Integer nullValue )
{
this.a = a;
this.b = b;
this.nullValue = nullValue;
}

}

我希望当我做一些服务

new TestConstructorLevel(1, 2, null)

由于 @NotNull,我得到了 ConstraintViolationException,但这不起作用。

我让它工作的唯一变体,当我手动触发验证时,如下所示:

validator.forExecutables().validateConstructorParameters(
ReflectionUtils.accessibleConstructor( TestConstructorLevel.class, int.class, int.class, Integer.class ),
new Object[] { 2,1, null } );

但这不合适。

我尝试创建 TestConstructorLevel 类作为 Spring bean,但没有任何改变。

所以我的问题是:我需要使用什么注释来触发构造函数的验证。

附言。它是 SpringBoot 应用程序,

最佳答案

您不可能仅通过向构造函数或其参数添加注释来更改构造函数的作用。

注解就是:注解。它只是提供一些关于构造函数参数的元数据。

validator 可以使用此元数据来完成其验证工作。但构造函数保持不变:一个构造函数。

关于java - 无法触发构造函数级别验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59437208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com