我希望在运行时执行方法之前运行一些代码,并且我想使用注释来实现它。我有一个注释@SetValues
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD })
public @interface SetValues
{}
我是注释新手并且有几个问题
答案 0 :(得分:0)
有几种方法可以做到:
但是我不确定你想要的是什么。名称“SetValues”似乎暗示您想要更改某些字段的值(并且可能在执行该方法后恢复它们)。你必须意识到InvocationHandler只能做这么多。它不能也不应该破坏封装(例如,至少不比任何其他代码可以在反射的帮助下完成)。 使用此类功能时需要考虑的另一点是,当InvocationHandler尝试更改两种方法所需的值时,它可能与此类方法的并发执行非常不相容。