Java 8:使用Lambda表达式优雅替代switch语句
在Java 8中,可以使用Lambda表达式和函数式接口来代替switch语句。以下是一些示例:
- 使用Map和函数式接口:
Map<String, Consumer<String>> actions = new HashMap<>();
actions.put('option1', str -> System.out.println('执行选项1:' + str));
actions.put('option2', str -> System.out.println('执行选项2:' + str));
actions.put('option3', str -> System.out.println('执行选项3:' + str));
String option = 'option1';
String argument = 'argument';
actions.getOrDefault(option, str -> System.out.println('无效选项:' + str)).accept(argument);
- 使用枚举和接口:
public interface Command {
void execute(String argument);
}
public enum Option implements Command {
OPTION1 {
@Override
public void execute(String argument) {
System.out.println('执行选项1:' + argument);
}
},
OPTION2 {
@Override
public void execute(String argument) {
System.out.println('执行选项2:' + argument);
}
},
OPTION3 {
@Override
public void execute(String argument) {
System.out.println('执行选项3:' + argument);
}
}
}
String option = 'OPTION1';
String argument = 'argument';
Option.valueOf(option).execute(argument);
这些示例中,使用了函数式接口Consumer和枚举来实现类似于switch语句的功能。使用Lambda表达式可以更简洁地定义需要执行的操作,而不需要编写大量的case语句。
原文地址: https://www.cveoy.top/t/topic/qnzt 著作权归作者所有。请勿转载和采集!