实现java.lang.reflect.Proxy的注释背后的基本原理是什么?

时间:2011-05-28 13:55:59

标签: java reflection proxy annotations language-design

语言规范并不要求它,并且似乎是供应商特定的。

注释/类的用户如何使用注释有什么好处或更好的保证?或者仅仅是因为某些JDK类是“方便”而被重用来帮助实现注释?

另见IKVM blog post

2 个答案:

答案 0 :(得分:3)

注释是接口。同时,他们应该至少有一些属性,应该由注释处理器读取。实现这种二元性的最简单方法是在运行时动态地附加注释(或者可能是类加载时间,不确定)。

答案 1 :(得分:2)

另一种方法是为每个注释类型编译(或以其他方式生成)新的实现类,或者重新发明另一个类似于Proxy的机制。

由于实现非常简单(并不是特定于每个注释类型),因此使用Proxy对象和通用的InvocationHandler实现是一个非常好的主意。