是否可以这样做:
void foo(Bar b, FooBar fb){
Object[] args=getArgs() //Contains the parameters b & fb
}
如果是,怎么样?
(我不知道名字和参数数量)
答案 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);
但你这样做会失去所有类型的安全感;我不是真的推荐它。