gpt4 book ai didi

java - 不明确的可变参数方法调用编译错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:11 25 4
gpt4 key购买 nike

method(1);  // This works -

void method(int... x) { }
void method(int x) { } // - this method is called

如果我向第二个方法添加一个 varargs 参数,我会得到一个“对方法的引用不明确”的编译错误:

method(1);  // This now fails

void method(int... x) { }
void method(int x, String... y) { } // adding String... y causes a problem.

既然 String...y 参数可以留空,为什么 Java 仍然不选择那个方法?谢谢,如果对 SO 有非常匹配的解释,我们深表歉意;我确实找过一个。

最佳答案

编译器总是选择使用特定的方法。

在第一种情况下,因为参数的完全匹配void method(int x),所以它就是被调用的那个打电话。

第二种情况,参数个数不匹配,两种方法都可以调用,导致歧义。

检查 JLS - 15.12.2. Compile-Time Step 2: Determine Method Signature了解详情。

关于java - 不明确的可变参数方法调用编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22962484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com