我试图通过在调用方法的地方替换每个对Class.forName的方法调用来捕获正在加载的类(该方法中的回调不是一种选择)。即
...
Class.forName(className);
...
替换为
...
Class.forName(MyProxy.call(className));
...
我的问题是尝试使用Class.forName(String,boolean,ClassLoader)方法执行相同操作。我的想法是执行以下操作:
Class.forName(MyProxy.call(className),booleanParameter,classLoaderParameter)
但是,我找不到解决办法。不能使用using和invokeStatic,因为如果例如保护类,Class.forName将无法正常工作
答案 0 :(得分:1)
由于@Holger的建议,我能够找到解决方案,最后我的代码替换了:
...
Class.forName(className, booleanParameter, loader);
...
使用
...
__callClassForName(className, booleanParameter, loader);
...
private static Class __callClassForName(String className, boolean bParameter, ClassLoader loader) {
MyProxy.call(className);
return Class.forName(className, bParameter, loader);
}