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验证器的替代品编辑了我的答案,祝你好运。