@NotNull没有按预期工作

时间:2014-08-14 08:53:45

标签: java

我的方法如下:

public String getParamValue(@NotNull String param) {
        .......
        .......
        .......
    }

即使将@NotNull放在param的前面,每当我致电getParamValue(null)时,它都不会抛出NPE。它正常进行,我需要做别的事情还是我错误地使用它?谢谢。

如果它有任何帮助,我正在使用Java 7和javax.validation.constraints.NotNull

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

您好以前已经问过这个问题。 总而言之,您需要这样做:

注释的MVC命名空间配置:

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

规范的实现,例如Hibernate Validation,它似乎是最常用的示例:hibernate-validator-4.1.0.Final.jar 你也可以使用其中一个 https://code.google.com/p/gwt-validation/http://bval.apache.org/

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

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

Annotations from javax.validation.constraints not working