我的方法如下:
public String getParamValue(@NotNull String param) {
.......
.......
.......
}
即使将@NotNull
放在param
的前面,每当我致电getParamValue(null)
时,它都不会抛出NPE
。它正常进行,我需要做别的事情还是我错误地使用它?谢谢。
如果它有任何帮助,我正在使用Java 7和javax.validation.constraints.NotNull
。
答案 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以捕获错误。