С CGLIB я могу сделать
CGLIB
final var enhancer = new Enhancer(); enhancer.setUseCache(false); enhancer.setSuperclass(superClazz); enhancer.setCallback(...); enhancer.setClassLoader(getClass().getClassLoader()); // This
Однако с Javassist я не могу найти способ установить ClassLoader. Любая идея?
Javassist
ClassLoader
РЕДАКТИРОВАТЬ: Боже мой, я должен просто подкласс ProxyFactory? Это странно.
ProxyFactory
Вы можете установить загрузчик классов, добавив ClassPaths в CtClass. См. Ответ на вопрос: получить CtClass с указанием c ClassLoader
// Kotlin ProxyFactory.classLoaderProvider = ProxyFactory.ClassLoaderProvider { javaClass.classLoader }
Это не кажется безопасным imho. Но, похоже, именно так и делается, согласно документации. В качестве альтернативы, просто подкласс ProxyFactory.