1
如何在Eclipse中以编程方式更改类的包。以与将类拖放到另一个包时具有相同结果的方式。我认为它必须使用AST完成,但找不到描述它的适当教程。eclipse:通过ast更改类的包装
如何在Eclipse中以编程方式更改类的包。以与将类拖放到另一个包时具有相同结果的方式。我认为它必须使用AST完成,但找不到描述它的适当教程。eclipse:通过ast更改类的包装
好的,我会回答我自己的问题(如爵士:))。我不得不调试到Eclipse,它是如何工作的:
CompositeChange composite = new DynamicValidationStateChange(RefactoringCoreMessages.ReorgPolicy_move);
MoveCuUpdateCreator creator = new MoveCuUpdateCreator(new ICompilationUnit[] {compUnit}, (IPackageFragment) newContainer);
TextChangeManager fChangeManager = creator.createChangeManager(new SubProgressMonitor(pm, 1), new RefactoringStatus());
composite.merge(new CompositeChange(RefactoringCoreMessages.MoveRefactoring_reorganize_elements, fChangeManager.getAllChanges()));
Change change = new MoveCompilationUnitChange(compUnit, (IPackageFragment) newContainer);
if (change instanceof CompositeChange) {
composite.merge(((CompositeChange) change));
} else {
composite.add(change);
}
composite.perform(pm);
选择类声明并执行Alt-Shift-V。或者,右键单击,重构,移动...
它应该处理更新导入和移动编译单元。
我需要的是在代码中完成它。类似[this](http://stackoverflow.com/questions/12968328/how-to-programmatically-rename-a-method-using-jdt),但移动一个类。 – Vahan
哦,_programmatically_。 K.不能帮助你。 – roippi