3 java compiler-errors ambiguity variadic-functions java-5
这是一个例子:
package com.demo;
public class PassArray {
static void vaTest(int... v){
System.out.println("no of args : "+v.length+"contents: ");
for (int x:v){
System.out.println(x+" ");
}
}
static void vaTest(boolean... v){
System.out.println("no of args : "+v.length+"contents: ");
for (boolean x:v){
System.out.println(x+" ");
}
}
public static void main(String args[]){
vaTest(1,2,3);
vaTest(true,false,true);
vaTest();//Error:Ambiguous!
}
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我:
我有一些问题
1.为什么会出现模棱两可的错误?
2.i有一个Varargs参数就好
int doIt(int a,int b,int c,int... vals)
Run Code Online (Sandbox Code Playgroud)
为什么必须最后声明varargs?
由于调用有两个合法的方法调用vaTest();,编译器无法确定使用哪一个.
为了帮助它,您可以提供所选类型的空数组:
vaTest(new int[] {});
Run Code Online (Sandbox Code Playgroud)
更多信息可在JLS 15.12.2.5中找到.选择最具体的方法.