Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @NotNull未按预期工作_Java - Fatal编程技术网

Java @NotNull未按预期工作

Java @NotNull未按预期工作,java,Java,我有这样一种方法: public String getParamValue(@NotNull String param) { ....... ....... ....... } 即使在将@NotNull放在参数前面之后,每当我调用getParamValue(null)时,它也不会抛出NPE。它照常进行,我是否需要做其他事情,还是我使用它有误?谢谢 我使用的是Java7和javax.validation.constraints.NotNul

我有这样一种方法:

public String getParamValue(@NotNull String param) {
        .......
        .......
        .......
    }
即使在将
@NotNull
放在
参数前面
之后,每当我调用
getParamValue(null)
时,它也不会抛出
NPE
。它照常进行,我是否需要做其他事情,还是我使用它有误?谢谢


我使用的是Java7和
javax.validation.constraints.NotNull,如果它有任何帮助的话。

这个注释本身没有任何作用。它只是其他工具的标记,因此它们知道约束。检查它的工具是源代码分析器和验证工具。

此注释本身不起任何作用。它只是其他工具的标记,因此它们知道约束。检查它的工具是源代码分析器和验证工具。

这不是notnull的保证,更像是承诺。所以你可以做一个先决条件检查:

if (param == null) {
    throw new PreconditionExc...

这不是对notnull的担保,更像是一个承诺。所以你可以做一个先决条件检查:

if (param == null) {
    throw new PreconditionExc...

嗨,这个问题以前已经问过了。 总结一下,您需要执行以下操作:

注释的MVC命名空间配置:

JSR-303规范JAR:validation-api-1.0.0.GA.JAR(看起来您已经有了)

规范的实现,例如Hibernate验证,它似乎是最常用的示例:Hibernate-validator-4.1.0.Final.jar 你也可以用其中一个 和

在要验证的bean中,来自spec JAR或实现JAR(您已经完成)的验证注释

在要验证的处理程序中,使用@Valid注释要验证的对象,然后在方法签名中包含BindingResult以捕获错误


您好,这个问题以前已经问过了。 总结一下,您需要执行以下操作:

注释的MVC命名空间配置:

JSR-303规范JAR:validation-api-1.0.0.GA.JAR(看起来您已经有了)

规范的实现,例如Hibernate验证,它似乎是最常用的示例:Hibernate-validator-4.1.0.Final.jar 你也可以用其中一个 和

在要验证的bean中,来自spec JAR或实现JAR(您已经完成)的验证注释

在要验证的处理程序中,使用@Valid注释要验证的对象,然后在方法签名中包含BindingResult以捕获错误


您使用的是哪种非空注释?javax.validation.constraints.notNull此代码是在容器中运行还是作为独立程序运行?您使用的是哪种非空注释?javax.validation.constraints.notNull此代码是在容器中运行还是作为独立程序运行?我没有使用hibernate,因此我可以使用任何其他实现让它工作起来?谢谢。我已经用hibernate validator的替代品编辑了我的答案,祝你好运。我没有使用hibernate,所以我可以使用任何其他实现来让它工作吗?谢谢。我已经用hibernate验证器的替代品编辑了我的答案,祝你好运。