【问题标题】:Java same function name with different type of HashMap input variable? [duplicate]Java相同的函数名称具有不同类型的HashMap输入变量? [复制]
【发布时间】:2016-02-07 23:18:25
【问题描述】:

这两个函数在同一个类中同名不会出错,因为输入的变量类型不同。 (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&lt;Integer, String&gt;,第二个使用HashMap&lt;Integer, Integer&gt;

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

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

这是为什么? 除了选择不同的函数名和颠倒变量的顺序,有没有更专业的方法来解决这个问题,而不需要操纵我的函数名的一致性?

【问题讨论】:

    标签: java function class hashmap overloading


    【解决方案1】:

    泛型在编译后被删除,所以两个方法的签名都只是:

    int sameName(HashMap, int)
    

    如果方法确实在做两件不同的事情,请将“sameName”更改为更有意义的名称。

    【讨论】:

    • 谢谢。他们对不同的数据类型做同样的事情。 (按值查找键。)
    猜你喜欢
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多