Javassist:如何将动态生成的类添加到特定包中?

时间:2011-07-06 13:08:27

标签: java dynamic javassist

我正在生成需要从其他现有类访问受保护字段的类。因此,我需要指定它应该结束的类路径。

有没有人知道如何在Javassist中执行此操作?

2 个答案:

答案 0 :(得分:1)

一个老问题,但我遇到了同样的问题。解决方案是在创建类时使用完整的类名,包括包。

ClassPool pool = ClassPool.getDefault();
String packageName = "yourpackage.";
String className = "NameOfTheClass";
CtClass dynamicClass = pool.makeClass(package+className);

通过这种方式,您将能够访问给定包中受保护的类字段。

答案 1 :(得分:0)

确保生成的类与声明受保护成员的类放在同一个包中。指定'它应该最终进入的类路径'不应该真正进入它,除非它是由类加载问题引起的。