在开发Eclispe插件时,我能够使用以下代码以编程方式重命名类字段。
RenameSupport renameSupport = RenameSupport.create(field, newName, RenameSupport.UPDATE_REFERENCES);
renameSupport.perform(workbench.getShell(), workbench);
但它将更改应用于实际的源文件。无论如何可以预防吗?我只需要内部重命名的代码(用于执行其他一些计算),不得更改实际的源代码。
请建议。
答案 0 :(得分:0)
您可以将其复制到 File.createTempFile()
的临时文件中,然后重命名临时文件中的代码,如果RenameSupport
允许您这样做。如果没有,那么您可以将原件复制到临时文件,并在其他计算完成后将其复制回来。
答案 1 :(得分:0)
首先,创建RefactoringDescriptor
的实例。然后,在其上调用createRefactoring
以创建Refactoring
的实例。您可以通过在createChange
对象上调用Refactoring
来获取更改对象。 Change
对象将告诉您重构将如何更改代码。最后,您可以调用perform
对象上的方法Change
将其应用于基础文件。
插件org.eclipse.jdt.ui.tests.refactoring
包含Eclipse中Java重构的自动单元测试。有关如何以编程方式调用重构的具体示例,请参阅org.eclipse.jdt.ui.tests.refactoring.RefactoringTest。