Java 具有不同类型的 HashMap 输入变量的相同函数名称?
Java same function name with different type of HashMap input variable?
这两个同名的class函数不会报错,因为输入的变量类型不同。 (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;
}
这是为什么?
除了选择不同的函数名和翻转变量的顺序之外,有没有更专业的方法来解决这个问题,而不需要操纵我的函数名称的一致性?
泛型在编译后被删除,所以两种方法的签名都是:
int sameName(HashMap, int)
如果这些方法确实在做两种不同的事情,请将 "sameName" 更改为更有意义的内容。
这两个同名的class函数不会报错,因为输入的变量类型不同。 (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;
}
这是为什么? 除了选择不同的函数名和翻转变量的顺序之外,有没有更专业的方法来解决这个问题,而不需要操纵我的函数名称的一致性?
泛型在编译后被删除,所以两种方法的签名都是:
int sameName(HashMap, int)
如果这些方法确实在做两种不同的事情,请将 "sameName" 更改为更有意义的内容。