CodeArts IDE
CodeArts IDE
- 最新动态
- 产品介绍
- 快速入门
-
用户指南
- 下载CodeArts IDE客户端
- 登录CodeArts IDE客户端
- 激活CodeArts IDE客户端
- 配置CodeArts IDE用户权限
- CodeArts IDE产品功能介绍
- CodeArts IDE基础操作介绍
- 使用CodeArts IDE for C/C++
- 使用CodeArts IDE for Java
- 使用CodeArts IDE for Python
- 使用CodeArts IDE for RemoteShell
- 最佳实践
- 常见问题
- API参考
- 文档下载
- 通用参考
本文导读
链接复制成功!
引入函数式参数
此重构允许您基于适当的函数接口使用匿名类(或函数表达式)包装代码片段,并将其用作方法的参数。
执行重构
- 在代码编辑器中,选择要转换为函数参数的表达式。
- 在编辑器上下文菜单中,选择“重构 > 引入函数式参数...”。
- 在打开的“引入参数”对话框中,提供引入参数的名称和其他重构选项。
- 在“参数类型”列表中,为提取的参数选择其中一种的类型。
- 选择是否应将提取的参数“声明为final”参数。
- 要保留原始方法并使用引入的参数定义新方法,请选中“通过重载方法委托”选项。
- 要让CodeArts IDE生成函数表达式而不是匿名类,请选中“转换为函数表达式”复选框。
- 单击“重构”以应用重构。
示例
例如,提取表达式“Hello World!”.toUpperCase()作为generateText方法的参数。通过使用Convert to functional expression选项,可以通过两种方式完成:函数表达式或匿名类。
重构前
class IntroduceFunctionalParameter {
public static void main(String[] args) {
System.out.println(generateText());
}
private static String generateText() {
return "Hello World!".toUpperCase();
}
}
重构后(函数表达式)
import java.util.function.Supplier;
class IntroduceFuncParameter {
public static void main(String[] args) {
System.out.println(generateText(() -> "Hello World!"));
}
private static String generateText(Supplier<String> supplier) {
return supplier.get().toUpperCase();
}
}
重构后(匿名类)
import java.util.function.Supplier;
class IntroduceFunctionalParameter {
public static void main(String[] args) {
System.out.println(generateText(new Supplier<String>() {
public String get() {
return "Hello World!".toUpperCase();
}
}));
}
private static String generateText(Supplier<String> supplier) {
return supplier.get();
}
}
父主题: 提取/引入重构