栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用JDT以编程方式重命名方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用JDT以编程方式重命名方法

我认为您最有前途的方法是使用Eclipse源代码。

  1. 下载带有源代码的所需版本。特别是,您需要JDT插件的源,该源包含在“经典”版本中。以下所有内容均基于4.2.1。
  2. 启动到一个空的工作区。
  3. File-> import:插件和片段
  4. 从“活动目标平台”,“从所有…中选择”,“带有源文件夹的项目”导入
  5. 至少选择org.eclipse.jdt.ui和org.eclipse.ltk.core.refactoring。

对应的起点

Refactor >>Rename
org.eclipse.jdt.ui.actions.RenameAction
。那是为了整体重命名重构,它可以重命名从方法到文件的任何内容。与您更相关的是
RenameSupport.create(IMethod,String, int)

您可以在此处看到

RenameRefactoring
围绕一个处理器(一个
RenameVirtualMethodProcessor
或一个)创建了一个类
RenameNonVirtualMethodProcessor
,然后将其发送到的新实例
RenameSupport

RenameSupport
处理所有UI来配置重构,但是由于您以编程方式进行重构,因此您只需要
RenameRefactoring
和处理器,即可使用各种
processor.set*()
方法进行配置。

现在,您已配置的实例

RenameRefactoring
。怎么办?Eclipse中的实际操作是跨两个Job实现执行的。查看一下
RefactoringExecutionHelper.Operation
PerformChangeOperation
了解详细信息。

这全部归结为什么?除了异常处理的所有细节之外,还有撤消堆栈和工作区检查点,您可以使用以下步骤重命名“虚拟”方法:

IMethod methodToRename = <....>RenameMethodProcessor processor = new RenameVirtualMethodProcessor(methodToRename)processor.setUpdateReferences(true);processor.setNewElementName("newMethodName");RenameRefactoring fRefactoring = new RenameRefactoring(processor);fChange= fRefactoring.createChange(new NullProgressMonitor());fChange.initializevalidationData(new NullProgressMonitor());fChange.perform(new NullProgressMonitor())

那里有很多用于撤消,进度条,异步执行,工作区检查点等的支持代码,您可能会或可能需要根据运行方式的不同而定。但这就是如何运行重构的胆量。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/464097.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号