gpt4 book ai didi

java - 如何在java中不使用if、switch、条件运算符、反射、while语句来调用不同的方法

转载 作者:行者123 更新时间:2023-12-01 19:59:02 24 4
gpt4 key购买 nike

我遇到了一个问题..我主要从 java 中的命令行参数接收 3 种类型的输入..比如说 A、B、C。基于这三种输入,我需要调用相应的方法(我定义了 3 种方法,其中一种方法是为每个输入)。

条件是:我们不应该使用 if、switch、条件运算符、while 语句、反射

任何人请分享你的想法

最佳答案

您可以使用 Map以便将 3 个可能的输入映射到 3 个相应的方法。

例如,假设输入是 String要执行的逻辑是一个接受 String 的方法。 :

Map<String,Consumer<String>> methods = new LinkedHashMap<>();
methods.put("A",a->methodA(a));
methods.put("B",a->methodB(a));
methods.put("C",a->methodC(a));

现在,给定输入 x ,您可以使用

调用所需的方法
methods.get(x).accept(input);

您可以使用getOrDefault而不是get如果您想在输入 x 时调用默认方法在 Map 中找不到:

methods.getOfDefault(x, a -> System.out.println("cannot process input " + a)).accept(input);

关于java - 如何在java中不使用if、switch、条件运算符、反射、while语句来调用不同的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48607404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com