调用哪个方法?(整数...a) vs. (int a, int b)
2022-09-02 01:02:24
我刚刚发现了一个非常有趣的Java技巧:
void method1(Integer... a){
}
因此,您可以根据需要为此方法提供任意数量的整数。
现在,如果我有一个类似的(重载)方法,如下所示:
void method1(int a, int b){
}
当我执行以下行时,哪个方法运行:
method1(1, 2);
好吧,我可以通过使用不同的方法指令进行测试来非常容易地发现这一点,但是当我考虑“重载”方法中的“规则”时,我必须确保每个重载方法都必须相同,以便编译器确切地知道要使用哪一个。
在我看来,上面的代码不应该工作,因为编译器应该混淆。但是当我尝试它时,它有效。
所以。。有没有人知道更多关于这个的背景信息?