定义两个变量a,b。a可取值为 1, 2, 3 ,b可取值为4, 5, 6
if(a = 1 && b = =4){
handler1();
}
if(a =1 && b == 5){
handler2();
}
if(a =2 && b == 4){
handler3();
}
....
a ,b 类型不固定,也可为枚举
这种通过a,b 取不同值,做不同业务,除了用if 判断,有更好的方式么?
定义两个变量a,b。a可取值为 1, 2, 3 ,b可取值为4, 5, 6
if(a = 1 && b = =4){
handler1();
}
if(a =1 && b == 5){
handler2();
}
if(a =2 && b == 4){
handler3();
}
....
a ,b 类型不固定,也可为枚举
这种通过a,b 取不同值,做不同业务,除了用if 判断,有更好的方式么?
参考GPT和自己的思路:你可以使用一个 Map 来存储不同组合的业务处理代码。具体实现方式如下所示:
Map<String, Runnable> handlerMap = new HashMap<>();
handlerMap.put("1,4", () -> handler1());
handlerMap.put("1,5", () -> handler2());
handlerMap.put("2,4", () -> handler3());
...
String key = a + "," + b;
handlerMap.getOrDefault(key, () -> {}).run();
这样可以避免大量的 if 判断,使代码更加清晰易读。不过需要注意的是,如果使用枚举类型作为 a 和 b 的类型,需要将枚举值拼接成字符串来作为 Map 的 key。