用反射覆盖注释?

时间:2013-03-12 16:02:14

标签: java reflection annotations config oval

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

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

我希望能够在需要时动态更新范围,比如我们的配置文件每个月左右都会发生变化,我希望能够在验证中反映这些变化。

有没有办法可以用反射做到这一点,这样我就不必在Oval中对每个注释进行子类化了?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

反思的目的是访问类成员(包括设置字段),但不包括添加新成员或修改现有声明。您想要的内容更类似于bytecode editingcode refactoring