我遇到了一个问题..我主要从 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/