使用CGLIB
,我可以进行
final var enhancer = new Enhancer();
enhancer.setUseCache(false);
enhancer.setSuperclass(superClazz);
enhancer.setCallback(...);
enhancer.setClassLoader(getClass().getClassLoader()); // This
然而,对于Javassist
,我找不到设置ClassLoader
的方法。知道吗?
编辑:天哪,我应该只是ProxyFactory
的子类吗?这很奇怪。
您可以通过将ClassPaths添加到CtClass来设置类加载器。请参阅问题的答案:使用特定的ClassLoader 获取CtClass
// Kotlin
ProxyFactory.classLoaderProvider = ProxyFactory.ClassLoaderProvider { javaClass.classLoader }
这看起来不安全。但根据文件显示,这显然是这样做的
或者,只使用ProxyFactory
的子类。