我想知道如何调用期望Object...(Object[])作为参数的类方法。
现在我不能在编译时知道需要传递给它的多少参数,所以我不能像somemethod(1,2,3,4,5)
那样做。
我正在做一些大的构建工作,比如:
if (param.lengts()==5) {
somemethod(1,2,3,4,5);
} elseif (param.lengts()==4)
somemethod(1,2,3,4);
....
我试图通过List<>
和ArrayList<>
,但没有成功。有没有一种简单的方法可以把我的动态数组转换成方法?我不能更改方法构造函数。
关于调用方法的问题,而不是方法内部的声明或读取参数。
发布于 2018-06-01 22:39:35
您可以对此使用变量参数:
private void somemethod(Integer.. array) {
}
然后这样叫它:
somemethod()
somemethod(1)
somemethod(1,2)
如果你有一个arraylist作为输入,你可以这样传递它:
someMethod(list.toArray(new Integer[list.size()]);
发布于 2018-06-01 23:01:46
传递一个数组。
Object[] params = ... build the array from the args
somemethod(params);
...
void somemethod(Object... objs);
发布于 2018-06-01 22:37:20
您可以使用var args:
方法声明:
void somemethod(Object ...){ }
用你需要的参数来调用这个方法。
https://stackoverflow.com/questions/50645778
复制相似问题