java8 什么优雅的写法可以代替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/iG4c 著作权归作者所有。请勿转载和采集!