Java:在字段访问上运行自定义代码

时间:2016-07-25 17:32:45

标签: java annotations field

我的用例如下:我有一个带有成员字段的类,几乎所有方法都可以访问它。我希望能够在每次访问时运行一些自定义代码修改成员字段,以便方法可以看到修改后的值。我最初的想法是使用自定义注释。

所以基本上我想要这样的东西:

  Class myClass {
    ...
    @MyAnnotation
    MyFieldType myField;
    ...

    public void myMethod()
    {
       ...
       Something smth = myField.getSomething();
       ...
    }
  }

这样当我运行方法myMethod()(或任何其他类方法)时,在修改myField之前会执行一些代码:

void MyAnnotationProcessor()
{
  ...
  myField.change();
}

这样当我在myMethod中访问myField时,我看到更改的myField而不是方法调用之前的那个。基本上,在这方面,@ MyAnnotation应该像junit中的@Before。

我尝试将@MyAnnotation实现为自定义约束,但不幸的是,它没有按计划运行,当方法访问字段时,从未调用约束验证器。

有没有办法用注释做到这一点?或者我是在与已经失败的斗争作斗争?

非常感谢任何帮助。

更新

我以完全不同的方式解决了我的问题,无需拦截现场访问。非常感谢所有评论的人。

0 个答案:

没有答案