3

是否有可能做到这一点:

void foo(Bar b, FooBar fb){
    Object[] args=getArgs() //Contains the parameters b & fb
}

如果是,如何?

(不知道名称和参数个数)

4

2 回答 2

5

不,Java 不支持将所有方法参数打包到数组中的简单通用方式。这对于静态类型的编程语言来说是相当标准的。它通常是动态语言,如 JavaScript 和 shell 脚本语言,它们允许将所有参数作为数组检索。

于 2015-06-09T19:46:23.047 回答
4

给定一个像您声明它的方法,没有(简单/标准)方法可以将其检索为Object[].

现在,您始终可以将方法声明为

public void doSomething(Object... args) {
   Object o1 = args[0];  // etc
}

然后你可以打电话

doSomething(foo);
// or
doSomething(foo, bar, baz);

但是这样做会失去所有类型的安全性;我真的不推荐它。

于 2015-06-09T19:49:34.313 回答