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