我有以下代码,test case 中的 value 可能是 String 类型,也有可能是 Integer 类型等等。如何根据参数类型调用不同的方法呢?我不想使用 if else 。
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// test cases
Object[][] testCases = new Object[][]{
{"name", "Martin", "Martin"},
{"age", 23, "23"}
};
for (Object[] testCase : testCases) {
String k = (String) testCase[0];
// extract v
String expectedResult = (String) testCase[2];
// How can I invoke the correct method without using if else?
// For value "Martin", I want to invoke putStr, for value 23, I want to invoke putInt
}
}
}
class DataContainer {
private final Map<String, String> map = new HashMap<>();
public void putStr(String k, String v) {
map.put(k, v);
}
public void putInt(String k, Integer v) {
map.put(k, String.valueOf(v));
}
public String get(String k) {
return map.get(k);
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.