为什么下面的java代码编译会导致错误?我正在使用java 8,如果这很重要。
public class SimpleTest {
private static boolean isPresent(int []... arrays, int number){
boolean isPresent = true;
for(int i=0;i<arrays.length;i++){
//isPresent = doBinarySearch(arrays[i], number);
if(!isPresent){
break;
}
}
return isPresent;
}
}
这是我得到的错误:
SimpleTest.java:3: error: ')' expected
private static boolean isPresent(int []... arrays, String number){
^
SimpleTest.java:3: error: ';' expected
private static boolean isPresent(int []... arrays, String number){
^
2 errors
答案 0 :(得分:4)
Varargs只能声明为最后一个参数。
您可以使用名为varargs的构造来传递任意数量的构造 方法的值。当你不知道有多少时,你会使用varargs 特定类型的参数将传递给该方法。这是一个 手动创建数组的快捷方式。
要使用varargs,请按照最后一个参数的类型进行操作 省略号(三个点,...),然后是空格和参数名称。该 然后可以使用任意数量的参数调用方法,包括 无。
(Source)
答案 1 :(得分:-3)
这应该有效:
private static boolean isPresent(int []arrays, int number) {
...
}