有没有办法获得一个包含函数参数的表?

时间:2014-05-10 03:36:20

标签: java arrays parameters

说我有这样的功能

public static boolean test(int a, int b)

有某种方法可以在某个地方访问某些数组中的参数吗?我之所以有一个带有很多参数的函数,但是我希望通过for循环得到它们,所以我希望能够做类似的事情

for(int i; i < 3; i++) test.args[1] do stuff

2 个答案:

答案 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
   }
}