0

我了解,在 Java 中我们有参数验证解决方案。我相信 JAX-RS 具有用于验证和数据提取的各种注释。我的问题是,如果我想为一个独立的 Java 应用程序实现我自己的参数验证类,我将如何确保仅在验证其参数时才执行方法?我正在使用反射来发现参数,@LowerCaseCheck然后对其执行验证,但不确定在哪里放置此验证代码。

public void print(@LowerCaseCheck String lowerCaseString) {
  ....
}
4

3 回答 3

2

您需要更改方法的字节码以执行检查(或调用执行检查的方法) 最简单的方法可能是使用面向方面的库,如 AspectJ。

于 2013-09-06T11:36:52.650 回答
0

查看gag以获取执行您正在寻找的库的示例。它使用 asm 字节码操作库在带注释的方法的开头插入验证检查。

于 2013-09-06T11:42:21.393 回答
0

你不能使用 Bean Validation (JSR-303) 来解决你的问题吗?@Pattern(regexp) 注释似乎正是您所需要的。

public void print(@Pattern(regexp = "^[a-z]*$") String lowerCaseString) {
  ....
}
于 2013-09-06T11:46:53.937 回答