为什么Java默认采用int值参数方法?为什么用var args方法给出歧义错误?

时间:2018-07-09 11:39:16

标签: java

对于单参数方法,Java会调用 int参数方法,但是如果var args方法给出歧义错误,为什么?

public class Test{
    public static void main(String[] args) {
        name(1);
        name(55);
    }
    public static void name(Integer i) {
        System.out.println("Integer method");
    }
    public static void name(int s) {
        System.out.println("int method");
     }
}

输出为

int method
int method

但如果使用以下程序

public class Test{
    public static void main(String[] args) {
        name(1,55);
        name(55,66);
    }
    public static void name(Integer... i) {
        System.out.println("var args Integer method");
    }
    public static void name(int... s) {
        System.out.println("var args int method");
    }
}

给出了歧义错误。为什么是因为?

0 个答案:

没有答案