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