Как скопировать функцию или класс в другой файл? - PullRequest
1 голос
/ 18 февраля 2010

Я разрабатываю плагин, в котором я ищу, где вызывается определенный метод «aaa». Затем я выясняю функцию, в которой вызывается этот конкретный метод «aaa». Я хочу скопировать этот конкретный метод или класс, в котором вызывается aaa, в другой файл. Как я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 18 февраля 2010

Вы можете взглянуть на пакет org.eclipse.jdt.internal.corext.refactoring.changes, особенно на класс CopyCompilationUnitChange.

Копирует « единицу компиляции », которая включает класс или метод.

getCu().copy(getDestinationPackage(), null, getNewName(), true, pm);

Используется функция копирования org.eclipse.jdt.core.ISourceManipulation

1 голос
/ 18 февраля 2010

Если вы имеете в виду добавление метода к существующему классу во время выполнения, лучше всего использовать что-то вроде Javassist .

ClassPool pool = ClassPool.getDefault();
CtClass source = pool.get("MySourceClass");
CtMethod sourceMethod = source.getDeclaredMethod("myMethod");
CtClass dest = pool.get("MyDestClass");
dest.addMethod(sourceMethod);
dest.writeFile();

Это потребует некоторой работы, чтобы получить права, но это должно быть общей идеей. Обратите внимание, что я не делал никакой обработки исключений и т. Д. Здесь. Вам нужно будет прочитать, как минимум, Javassist tutorial и, возможно, если вам нужно сделать что-то действительно загадочное, соответствующие биты спецификации JVM .

0 голосов
/ 18 февраля 2010

выберите имя метода

щелкните правой кнопкой мыши

Рефакторинг

Переместите

выберите класс назначения и нажмите OK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...