Java:将所有方法参数作为Object数组获取

时间:2015-06-09 19:42:36

标签: java syntax method-parameters

是否可以这样做:

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

如果是,怎么样?

(我不知道名字和参数数量)

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

鉴于您声明它的方法,没有(简单/标准)方法将其检索为Object[]

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

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

然后你可以打电话

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

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