java - 修改所有getter方法的返回值

时间:2015-08-05 10:46:48

标签: java

我有一个java类,其中包含一些带有setter和getter的字段。像这样:

public class Test{
    public String field1;
    public String field2;
    ...

    //Setters and Getters
}

我想在执行每个getter方法之前做一些逻辑。实际上我想要一个在调用getter方法之前调用的方法,获取getter方法的返回值,修改它并设置新值(如果可能的话,使用自定义注释不改变getter方法的主体)。例如:

Test test = new Test();
test.setField1("field1");
test.setField2("field2");

现在,我希望当我使用test.getField1()时,调用一个方法并更改filed1属性的值。无论如何这样做?

编辑:感谢 Ambrish Kayaman 我意识到我的spring mvc应用程序中的一种可能方式是 AspectJ 。但我的问题是无论如何都要使用自定义注释吗?

2 个答案:

答案 0 :(得分:0)

您可以使用AspectJ等AOP库来定义getter方法的切入点。这将允许您在调用方法之前(和之后)执行操作。

答案 1 :(得分:0)

您可以浏览以下选项:

如果您的应用是基于Spring的第一个选项,AspectJ,则更好。 Reflection可以在任何地方使用。