Javassist工厂-设置自定义类加载器



使用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的子类。

最新更新