我正在开发一个插件,我在其中搜索某个特定方法称为“aaa”的地方。然后我找到了这个特定方法'aaa'被调用的函数。我想将这个特定方法或调用aaa的类复制到另一个文件。我该怎么做?帮助
答案 0 :(得分:3)
您可以查看org.eclipse.jdt.internal.corext.refactoring.changes
包,尤其是CopyCompilationUnitChange
类。
它复制了一个“compilation unit”,其中包含一个类或方法。
getCu().copy(getDestinationPackage(), null, getNewName(), true, pm);
的复制功能
答案 1 :(得分:1)
如果您的意思是在运行时向现有类添加方法,最好的办法是使用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 spec的相关内容。
答案 2 :(得分:0)
选择方法名称
右键单击
重构
移动
选择目标类,然后单击“确定”