Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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 是否可以使用BeanValidation为方法验证的接口添加注释?_Java_Bean Validation_Wildfly 8_Java Ee 7 - Fatal编程技术网

Java 是否可以使用BeanValidation为方法验证的接口添加注释?

Java 是否可以使用BeanValidation为方法验证的接口添加注释?,java,bean-validation,wildfly-8,java-ee-7,Java,Bean Validation,Wildfly 8,Java Ee 7,我在学习JavaEE7的项目中使用了以下结构: 豆子: 接口: public interface MyInterface { public String lookup(@NotNull String text); } 还有第二个bean: public class HelloWorld { @Inject private MyInterface bean; public String getMessage() { return bean.lookup

我在学习JavaEE7的项目中使用了以下结构:

豆子:

接口:

public interface MyInterface {
    public String lookup(@NotNull String text);
}
还有第二个bean:

public class HelloWorld {
    @Inject
    private MyInterface bean;

   public String getMessage() {
      return bean.lookup(null);
   }
}
我的服务器是WildFly 8.2

我希望在调用lookup方法时对其进行验证,因此我对参数进行了注释,使其不接受null

问题是,当我调用HelloWorld.getMessages()时,该代码运行正常(我得到返回值“found3”)

如果我将验证表单MyInterface复制到MyBean,我会得到我想要的validaiton异常


可以在接口中声明验证吗?我该怎么做?

好的,这就是答案。你能把它转换成一个答案,这样我就可以标记它吗?事实上,我认为还有更多。根据Bean验证规范,正确的方法是注释接口。另请参见。由于Liskov替换原理,我我们甚至可以预期,在MyBean方法中对参数设置约束会引发配置异常。中建议的注释继承在这里不起作用。奇怪……这意味着我上面的代码应该可以工作……如果我将接口更改为抽象类,它就可以工作,因此“基础结构”可以正在正常工作。检查bean时,我能够检查注释是否不存在。关于如何解决这个问题,我有什么想法吗?顺便说一句:我在注释实现类时没有异常。不,这对我来说似乎很奇怪。没有更多上下文,很难判断出哪里出了问题。也许你可以提取一个测试用例并在这里报告它-
public class HelloWorld {
    @Inject
    private MyInterface bean;

   public String getMessage() {
      return bean.lookup(null);
   }
}