【发布时间】:2020-01-28 00:37:39
【问题描述】:
Java 8 抱怨以下方法调用不明确:
reference to overloadedMethod is ambiguous
both method overloadedMethod(java.lang.String,double...) in XTest and
method overloadedMethod(java.lang.String,java.lang.Object...) in XTest match
@Test
public void testUnboxing() {
Double test = new Double(1.0);
this.overloadedMethod("Hola" , test);
this.overloadedMethod("Hola" , 1.01d);
}
private void overloadedMethod(String test, double... args){
System.out.println("Method 1");
}
private void overloadedMethod(String test, Object... args){
System.out.println("Method 2");
}
我设法编译此代码的唯一方法是在参数列表的末尾添加一个空值,它会输出方法 2。
this.overloadedMethod("Hola" , 1.01d, null);
Oracle Docs 中没有任何内容可以解释这种行为。我会不会,以我无穷无尽的智慧,错过了什么?这可能是 Java 8 中的错误吗?
【问题讨论】:
标签: java overloading ambiguous