2

我正在使用 Oval 进行验证,所以我们的代码如下所示:

   @NotNull(errorCode = "NumberInvalid")
   @NotNegative(errorCode = "NumberInvalid")
   @Range(errorCode = "NumberInvalid", min=1, max=10)
   protected Integer dollarAmount;

如果需要,我希望能够动态更新范围,例如,如果我们有一个每个月左右更改的配置文件,我希望能够在验证中反映这些更改。

有没有一种方法可以通过反射来做到这一点,这样我就不必对 Oval 中的每个注释进行子类化?

4

3 回答 3

0

反射的目的是访问类成员(包括设置字段),但不包括添加新成员或修改现有声明。你想要的更类似于字节码编辑代码重构

于 2013-03-12T16:23:32.603 回答
0

虽然使用静态代码的注释看起来更干净 :) 但是......有一种方法......你尝试过使用反射吗?你能发布方法吗?你可以看看这个

于 2013-03-12T16:12:34.810 回答
0

据我所知,这是不可能的。假设您的注释保留设置为 RUNTIME(它必须是验证才能工作),那么您将有效地拥有一个实现注释接口的代理类,您将无法通过反射修改值。

于 2013-03-12T16:14:10.173 回答