说我有这样的功能
public static boolean test(int a, int b)
有某种方法可以在某个地方访问某些数组中的参数吗?我之所以有一个带有很多参数的函数,但是我希望通过for循环得到它们,所以我希望能够做类似的事情
for(int i; i < 3; i++) test.args[1] do stuff
答案 0 :(得分:0)
Java支持“varargs” - 请参阅Arbitrary Number of Arguments:
您可以使用名为varargs的构造来将任意数量的值传递给方法。当您不知道将多少特定类型的参数传递给该方法时,您可以使用varargs。这是手动创建[并接受]数组的快捷方式。
要使用varargs,您可以通过省略号(三个点,...),一个空格和参数名称来跟踪最后一个参数的类型。 然后可以使用任意数量的参数调用该方法,包括无参数。
例如,在这种情况下可能看起来像:
public static boolean test(int... args) {
// now args, a variable of type int[], can be accessed
for(int i; i < args.length; i++) {
doStuff(args[i]);
}
}
这是单独命名参数的独占,因此无法在类型系统中强制执行多重性 - 上述方法将接受0..n整数。
就个别参数而言:它们只能通过绑定的标识符名称访问,并且在运行时可以使用 no “表查找”。当然,可以在内部构建/使用集合:
public static boolean test(int a, int b) {
int args[] = {a, b};
// yay, now we got an array of argument values and the method
// must be invoked with exactly 2 arguments
}
答案 1 :(得分:0)
您是否在询问是否可以将数组作为参数传递?如果是这样,那么答案是肯定的。下面我将一个双精度数组作为参数传递给方法。
public void meth1 (double[] myList){
for(int i =0; i<myList.length; i++){
//Process entries here
}
}