У меня есть такая структура классов:
package com.mydomain.myproject;
public class Outer{
public class Inner{
//some code
}
}
Теперь я могу получить CtClass
внутреннего класса, используя:
ClassPool pool=ClassPool.getDefault();
CtClass innerCt=pool.getCtClass("com.mydomain.myproject.Outer$Inner");
Проблема возникает, если эти классы загружаются специальным ClassLoader
.
ClassPool#getCtClass
не удается, потому что ClassLoader
, который он использует, не знает о классе.
Я получаю следующее исключение:
javassist.NotFoundException: io.github.jdiscordbots.nightdream.commands.Eval$Sandbox
at javassist.ClassPool.get(ClassPool.java:430)
at javassist.ClassPool.getCtClass(ClassPool.java:495)
at <my classes>
Как указать ClassLoader
для ClassPool#getCtClass
? Можно ли как-то установить загрузчик классов из ClassPool
? Я заметил, что есть метод getClassLoader()
, но, похоже, нет сеттера.