首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@NotNull未按预期工作

@NotNull未按预期工作
EN

Stack Overflow用户
提问于 2014-08-14 16:53:45
回答 3查看 3.8K关注 0票数 1

我有一个类似这样的方法:

代码语言:javascript
复制
public String getParamValue(@NotNull String param) {
        .......
        .......
        .......
    }

即使在将@NotNull放在param前面之后,每当我调用getParamValue(null)时,它也不会抛出NPE。它照常进行,我是需要做其他事情,还是我用错了?谢谢。

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

EN

回答 3

Stack Overflow用户

发布于 2014-08-14 17:00:43

这个注解本身不会做任何事情。这只是其他工具的一个标记,所以他们知道约束。检查它的工具是源代码分析器和验证工具。

票数 3
EN

Stack Overflow用户

发布于 2014-08-14 17:01:17

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

代码语言:javascript
复制
if (param == null) {
    throw new PreconditionExc...
票数 1
EN

Stack Overflow用户

发布于 2014-08-14 17:03:25

嗨,这个问题以前已经被问过了。总而言之,您需要执行以下操作:

注释的MVC命名空间配置:

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

规范的实现,比如Hibernate验证,这似乎是最常用的示例: hibernate-validator-4.1.0.Final.jar您也可以使用以下https://code.google.com/p/gwt-validation/http://bval.apache.org/之一

在要验证的bean中,验证注释来自spec JAR或来自实现JAR (您已经这样做了)。

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

Annotations from javax.validation.constraints not working

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25303954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档