这两个具有相同名称的同一个类中的函数不会导致错误,因为输入变量类型不同。 (String
和int
)
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;
}
这是为什么? 除了选择不同的函数名称和翻转变量的顺序之外,还有更专业的方法来解决这个问题,而不会操纵函数名称的一致性吗?
答案 0 :(得分:3)
编译后会删除泛型,因此这两种方法的签名只是:
int sameName(HashMap, int)
更改&#34; sameName&#34;如果方法确实做了两件不同的事情,那就更有意义了。