如何在 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 @   甜菜波波  阅读(1319)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2022-07-19 git查看分支创建于哪个分支
2018-07-19 说说Java中的资源文件的读取
2015-07-19 ASP.NET异步处理
2015-07-19 C# TPL学习
点击右上角即可分享
微信分享提示