重构操作

重构菜单命令:

名称

描述

重命名

重命名所选择的元素,并在启用对元素的所有引用时更正这些引用(同时在其他文件中也进行更正)。
可用: 方法、方法参数、字段、局部变量、类型、类型参数、枚举常量、编译单元、包、源代码文件夹、项目以及解析为这些元素类型中的其中一种类型的文本选择
快捷方式: Alt + Shift + R
选项: 重命名一种类型还允许重命名具有类似名称的变量和方法。在“重命名类型”对话框中启用“更新具有类似名称的变量和方法”。选择“配置...”以配置用于匹配类型名的策略。

重命名包还允许重命名其子包。在“重命名包”对话框中启用“重命名子包”。

移动

移动所选择的元素,并在启用对元素的所有引用时更正这些引用(同时在其他文件中也进行更正)。
可用: 实例方法(可以将它移动到组件)、一个或多个静态方法、静态字段、类型、编译单元、包、源代码文件夹和项目以及解析为这些元素类型的其中一种类型的文本选择
快捷方式: Alt+Shift+V
选项: 可以在包资源管理器中使用拖放来启动此重构。
更改方法特征符 更改参数名称、参数类型和参数顺序,并更新对相应方法的所有引用。此外,可以除去或添加参数,并且可以更改方法返回类型和它的可视性。
可用: 方法或解析为方法的文本选择
选项: 在“更改方法特征符”对话框中启用“保留原始方法作为所更改方法的代理”以保留原始方法。
抽取方法 创建一个包含当前所选择的语句或表达式的新方法,并将选择替换为对新方法的引用。此功能对于清理冗长、杂乱或过于复杂的方法是很有用的。
可用: 可以使用编辑菜单中的扩展选择至以获取有效的选择范围。
快捷方式: Alt+Shift+M
抽取局部变量 创建为当前所选择的表达式指定的新变量,并将选择替换为对新变量的引用。
可用: 解析为局部变量的文本选择。可以使用编辑菜单中的扩展选择至以获取有效的选择范围。
快捷方式: Alt+Shift+L
抽取常量 从所选表达式创建静态终态字段并替换字段引用,并且可以选择重写同一表达式的其他出现位置。
可用: 常量表达式或解析为常量表达式的文本选择
内联 直接插入局部变量、方法或常量。
可用: 方法、静态终态字段和解析为方法、静态终态字段或局部变量的文本选择
快捷方式: Alt+Shift+I
将匿名类转换为嵌套类 将匿名内部类转换为成员类。
可用: 匿名内部类
将成员类型转换为顶级 为所选成员类型创建新的 Java 编译单元,并根据需要更新所有引用。对于非静态成员类型来说,将添加字段以允许在必要时访问先前的外层实例。
可用: 成员类型或解析为成员类型的文本
将局部变量转换为字段 将局部变量转换为字段。如果该变量是在创建时初始化的,则此操作将把初始化移至新字段的声明或类的构造函数。
可用: 解析为局部变量的文本选择
抽取超类 从一组同代类型中抽取公共超类。在应用该重构后,所选择的同代类型将成为抽取出的超类的直接子类。
可用: 类型
选项: 尽可能启用“尽可能使用已抽取的类”以使用刚刚创建的类。请参阅尽可能使用超类型
抽取接口 使用一组方法创建新接口并使选择的类实现该接口。
可用: 类型
选项: 尽可能启用“尽可能使用抽取的接口类型”以使用刚刚创建的接口。请参阅尽可能使用超类型
尽可能使用超类型 将某个类型的出现替换为它的其中一个超类型,在执行此替换之前,需要标识所有有可能进行此替换的位置。
可用: 类型
下推 将一组方法和字段从一个类移至它的子类。
可用: 同一种类型中声明的一个或多个方法和字段或者字段或方法内的文本选择
上拉 将字段或方法移至其声明类的超类或者(对于方法)将方法声明为超类中的抽象类。
可用: 在同一种类型中声明的一个或多个方法、字段和成员类型,或者字段、方法或成员类型内的文本选择
引入间接 创建委托给所选方法的静态间接方法。
可用: 方法或解析为方法的文本选择
选项: 启用“重定向所有方法调用”,以使用对重定向方法的调用替换对原始方法的所有调用。
引入工厂 创建一个新的工厂方法,该方法将调用选择的构造函数并返回创建的对象。对该构造函数的所有引用都将被替换为对新工厂方法的调用。
可用: 构造函数声明
引入参数 较表达式替换为对新方法参数的引用,并将该方法的所有调用者更新为传递该表达式作为该参数的值。
可用: 解析为表达式的文本选择
包括字段 将对字段的所有引用替换为 getting 和 setting 方法。
可用: 字段或解析为字段的文本选择
通用化已声明的类型 允许用户选择引用的当前类型的超类型。如果可以将该引用安全地更改为新类型,则执行此更改。
可用: 类型引用以及带有引用类型的字段、局部变量和参数的声明
推断通用类型参数 在标识所有可以将通用类型的原始类型出现替换为已参数化的类型的位置之后,执行该替换。
可用: 项目、包和类型
选项: “假定 clone() 返回 receiver 类型的实例”。良好的类通常遵循此规则,但是,如果您知道代码违反了此规则,请取消选择此框。

“让不受约束的类型参数保持原样(而不是推断为 <?>)”。如果没有应用于 ArrayList 的元素的约束,则取消选择此框将导致 Eclipse 仍提供通配符参数,从而将引用替换为 ArrayList<?>。
迁移 JAR 文件 将工作空间中项目构建路径的 JAR 文件迁移到较新的版本,这可能会使用存储在新 JAR 文件中的重构信息来避免中断更改。
可用: 构建路径中的 JAR 文件
创建脚本 创建已在工作空间中应用的重构的脚本。可以将重构脚本保存到文件或复制到剪贴板。请参阅应用脚本
可用: 始终
应用脚本 在工作空间中将重构脚本应用于项目。可以从文件或剪贴板装入重构脚本。请参阅创建脚本
可用: 始终
历史记录 浏览工作空间重构历史记录,并提供用于从重构历史记录中删除重构的选项。
可用: 始终

许多视图和 Java 编辑器的上下文菜单中也提供了重构命令。

相关概念

重构支持

相关参考

重构对话框
Java 首选项