【发布时间】:2019-08-30 17:07:32
【问题描述】:
以下方法签名:
public void doSomeStuff(Foo ... names){
}
现在假设我有一个List<String> names,我想将其转换为Foos,然后我可以将其传递给doSomeStuff()。
因为创建所有Foos的方法会很方便,所以我考虑实现一个方法如下:
public Foo[] createFoos(List<String> names){
Foo[] foos = new Foo[names.size()];
//create all the Foo's and pass them into array
return foos;
}
最后我想要这样的代码(我有一些来自其他来源的Foos,或者它们确实需要特殊处理):
doSomeStuff(foo1, foo2, createFoos(names));
所以问题是,是否有可能实现一个方法 (createFoos()),它返回一个被带有 Foo ... names 签名的方法接受的对象,如果是这样,人们将如何去做?
对不起,如果这是重复的,我找不到关于这个主题的任何内容
编辑:
正如我刚刚意识到的那样,要求有点不同。很抱歉造成混乱。更新了方法调用。
关键部分是我需要传入一些来自其他来源/不是由createFoos() 方法创建的Foos
【问题讨论】:
-
“遗憾的是,Foo[] 不是 Foo ... 名称所接受的返回类型”Yes it is
-
“遗憾的是,Foo[] 不是 Foo ...names 接受的返回类型”:这是不正确的。数组是 var-arg 参数的有效参数。你真的试过了吗?
-
我更新了要求。我忘记了一个非常关键的部分
标签: java