如何在 Java 8 中将 List 转换为可变参数对象

我有一个函数 ( findByNames) 接受传播参数,如下例所示:

List<Users> findByNames(String... names)
{
  ...
} 

作为参数,我有一个列表:

List<String> names = asList("john","abraham");

所以我想将names列表转换为传播对象以使用findByNames函数,这可以使用 Java 8 吗?我试过这个解决方案:

MapUtils.getMap(names.toArray(new String[names.size()]))

但它不起作用!

谢谢你的时间。

 

Nam*_*man 6

 

将 转换List<String>为数组String[]

// Java-8(tag in question)
List<Users> users = findByNames(names.toArray(new String[0]));
// Java-11
List<Users> users = findByNames(names.toArray(String[]::new));
https://qa.1r1g.com/sf/ask/3829812661/
https://segmentfault.com/q/1010000042894788/a-1020000042894790

如果将列表转换为数组,String … 和 String[] 是相同的。

使用

Foo[] array = list.toArray(new Foo[list.size()]);

或者

Foo[] array = new Foo[list.size()];
list.toArray(array);

然后将该数组用作 String ... 函数的参数。

原文由 Alpesh Gediya 发布,翻译遵循 CC BY-SA 3.0 许可协议

https://segmentfault.com/q/1010000042894788/a-1020000042894790

posted @ 2023-07-19 13:59  甜菜波波  阅读(1163)  评论(0编辑  收藏  举报