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