在我的程序中,我想在 ClassLoader 加载类时拦截它们,并对它们做一些事情,例如。检查某些注释等。我该怎么做?
我已经在网上做了很多研究,但没有得到我的答案。我应该重写 ClassLoader 吗?问题在于,在大多数情况下,父 ClassLoader 会加载该类,因此我将无法获取所有类。在这个网站上的几个问题上,我看到提到了 Instrumentation,但我不知道这是否与我的问题有关。
在我的程序中,我想在 ClassLoader 加载类时拦截它们,并对它们做一些事情,例如。检查某些注释等。我该怎么做?
我已经在网上做了很多研究,但没有得到我的答案。我应该重写 ClassLoader 吗?问题在于,在大多数情况下,父 ClassLoader 会加载该类,因此我将无法获取所有类。在这个网站上的几个问题上,我看到提到了 Instrumentation,但我不知道这是否与我的问题有关。
您可以使用 java 代理来监控:
API 文档:http ://docs.oracle.com/javase/6/docs/api/java/lang/instrument/ClassFileTransformer.html
例子:
http://www.informit.com/guides/content.aspx?g=java&seqNum=589