我有以下代码,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.