Javassist: Как добавить динамически сгенерированные классы в конкретный пакет? - PullRequest
4 голосов
/ 06 июля 2011

Я создаю классы, которым требуется доступ к защищенным полям из других существующих классов.Из-за этого мне нужно указать путь к классу, в котором он должен заканчиваться.

Кто-нибудь знает, как это сделать в Javassist?

Ответы [ 2 ]

1 голос
/ 01 марта 2016

Старый вопрос, но я столкнулся с той же проблемой. Решение заключается в использовании полного имени класса, включая пакет, при создании класса.

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

Таким образом, вы сможете получить доступ к защищенным полям классов из данного пакета.

0 голосов
/ 13 февраля 2012

Убедитесь, что сгенерированные классы помещены в тот же пакет, что и те, которые объявляют защищенные члены.Указание «пути к классам, в котором оно должно заканчиваться», на самом деле не должно входить в него, если только оно не вызвано проблемами с загрузкой классов.

...