我有这样的类结构:
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()
方法,但似乎没有设置方法。