我正在生成需要从其他现有类访问受保护字段的类。因此,我需要指定它应该结束的类路径。
有谁知道如何在 Javassist 中做到这一点?
一个老问题,但我遇到了同样的问题。解决方案是在创建类时使用完整的类名,包括包。
ClassPool pool = ClassPool.getDefault();
String packageName = "yourpackage.";
String className = "NameOfTheClass";
CtClass dynamicClass = pool.makeClass(package+className);
这样,您将能够访问给定包中类的受保护字段。
确保生成的类与声明受保护成员的类放在同一个包中。不应该真正指定“它应该最终进入的类路径”,除非它是由类加载问题引起的。