Java具有不同类型的HashMap输入变量的相同函数名称?

时间:2016-02-07 23:18:26

标签: java function class hashmap overloading

这两个具有相同名称的同一个类中的函数不会导致错误,因为输入变量类型不同。 (Stringint

public static int sameName(HashMap<Integer, String> _map, String _var) {
    return 42;
}

public static int sameName(HashMap<Integer, String> _map, int _var) {
    return 42;
}

在这种情况下,变量类型也不同,但这仍会导致错误。第一个使用HashMap<Integer, String>,第二个使用HashMap<Integer, Integer>

public static int sameName(HashMap<Integer, String> _map, int _var) {
    return 42;
}

public static int sameName(HashMap<Integer, Integer> _map, int _var) {
    return 42;
}

这是为什么? 除了选择不同的函数名称和翻转变量的顺序之外,还有更专业的方法来解决这个问题,而不会操纵函数名称的一致性吗?

1 个答案:

答案 0 :(得分:3)

编译后会删除泛型,因此这两种方法的签名只是:

int sameName(HashMap, int)

更改&#34; sameName&#34;如果方法确实做了两件不同的事情,那就更有意义了。

相关问题