Javassist factory - настройка собственного загрузчика классов - PullRequest
0 голосов
/ 05 апреля 2020

С CGLIB я могу сделать

final var enhancer = new Enhancer();
enhancer.setUseCache(false);
enhancer.setSuperclass(superClazz);
enhancer.setCallback(...);
enhancer.setClassLoader(getClass().getClassLoader());   // This

Однако с Javassist я не могу найти способ установить ClassLoader. Любая идея?

РЕДАКТИРОВАТЬ: Боже мой, я должен просто подкласс ProxyFactory? Это странно.

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Вы можете установить загрузчик классов, добавив ClassPaths в CtClass. См. Ответ на вопрос: получить CtClass с указанием c ClassLoader

0 голосов
/ 05 апреля 2020
// Kotlin
ProxyFactory.classLoaderProvider = ProxyFactory.ClassLoaderProvider { javaClass.classLoader }

Это не кажется безопасным imho. Но, похоже, именно так и делается, согласно документации.
В качестве альтернативы, просто подкласс ProxyFactory.

...