如何将列表转换为可变参数参数java

您所在的位置:网站首页 java参数数组 如何将列表转换为可变参数参数java

如何将列表转换为可变参数参数java

#如何将列表转换为可变参数参数java | 来源: 网络整理| 查看: 265

我有一个方法,它使用可变长度的字符串(String ...)作为参数。 我有一个List。 如何将其作为参数传递给方法?

相关讨论 Java中的Varargs:Java中的可变参数方法 我不确定我是否正确理解您的问题。 是method(String... length)还是method(int length, String... param),还是其他?

String...等于String[] 因此,只需将您的list转换为String[],就可以了。

相关讨论 OP的附加说明:如果您有使用Object ...的方法,则该方案将无法工作,因为String []将被理解为一个Object。 @MarkoTopolnik谢谢。 任何想法如何解决?

如果将列表转换为数组,则String ...和String []相同。

使用

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

要么

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

然后使用该数组作为String ...参数起作用。

相关讨论 这也起作用:list.toArray(new Foo[]{}); 如果您不想在其他变量中存储列表,则很有用。 Foo是什么东西? 我使用的是String而不是getUnsecuredPaths().toArray(new String[]{})

您可以在Java 8中使用stream。

1String[] array = list.stream().toArray(String[]::new);

然后可以在...args位置使用该数组。

相关讨论 list.toArray(new String [] {})足够 仅供参考,如果针对Android流进行开发需要API 24和jdk 1.8,请确保在清单和项目设置中进行了设置。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3