引入参数
此重构允许为方法声明引入新参数,以便在方法调用中,将原始表达式作为方法参数传递。您还可以选择保留原始方法,或者使用创建的参数定义一个新方法。这与内联参数重构相反。
执行重构
- 在代码编辑器中,将光标放置在要提取到参数的表达式上。
- 单击右键展示上下文菜单,选择“Ctrl+Shift+Alt+P”。 。或者按
- 如果多个表达式属于重构范围,请在弹窗中选择所需的表达式。
- 在打开的“引入参数”对话框中,提供引入参数的类型和名称,并选择是否应将参数“声明为final”参数。要保留原始方法并使用引入的参数定义新方法,请使用“通过重载方法委托”选项。
如下图所示:
图1 引入参数 - 单击“重构” 以应用重构。
示例
作为示例,将表达式 "Hello" + " " + "World!" 提取到一个新的message参数中,并将其委托给一个重载的方法。
重构前
“com\refactoring\source\ExtractParameter.java”文件内容如下:
class ExtractParameter { public static void main(String[] args) { sayHello(); } private static void sayHello() { System.out.println("Hello" + " " + "World!"); } }
重构后
将“println”的参数作为参数引入后,“com\refactoring\source\ExtractParameter.java”文件内容如下:
class ExtractParameter { public static void main(String[] args) { sayHello("Hello" + " " + "World!"); } private static void sayHello(String message) { System.out.println(message); } }