更新时间:2025-08-19 GMT+08:00
分享

引入函数式参数

此重构允许基于适当的函数接口使用匿名类(或函数表达式)包装代码片段,并将其用作方法的参数。

执行重构

  1. 在代码编辑器中,选择要转换为函数参数的表达式。
  2. 单击右键展示上下文菜单,选择重构 > 引入函数式参数...
  3. 在选择适用的函数接口弹窗选择需要的接口。如下图所示:

    图1 选择适用的函数接口

  4. 选定接口后,会打开“引入参数”对话框,该弹窗提供引入参数的名称和其他重构选项。

    • “参数类型”列表中,为提取的参数选择其中一种的类型。
    • 选择是否应将提取的参数“声明为final”参数。
    • 要保留原始方法并使用引入的参数定义新方法,请选中“通过重载方法委托”选项。
    • 要让CodeArts IDE生成函数表达式而不是匿名类,请选中“转换为函数表达式”选项。

      如下图所示:

      图2 引入参数

  5. 单击“重构”以应用重构。

示例

例如,提取表达式“Hello World!”.toUpperCase()作为generateText方法的参数。

重构前

“com\refactoring\source\IntroduceFunctionalParameter.java”文件内容如下:

class IntroduceFunctionalParameter {
    public static void main(String[] args) {
        System.out.println(generateText());
    }

    private static String generateText() {
        return "Hello World!".toUpperCase();
    }
}

重构后

“com\refactoring\source\IntroduceFunctionalParameter.java”文件内容如下:

import java.util.function.Supplier;

class IntroduceFunctionalParameter {
    public static void main(String[] args) {
        System.out.println(generateText("Hello World!"::toUpperCase));
    }
    private static String generateText(Supplier<String> supplier) {
        return supplier.get();
    }
}

相关文档