繁体   English   中英

如何转换列表 <String> 对象到String ...对象

[英]How to convert a List<String> object to String… Object

最近我遇到了一个API,它正在使用一些参数

void doSomething(final String... olah) {
}

我从来没有见过这样的东西。

我现在有一个List<String> ,我想用我的字符串列表调用该函数。 我怎样才能做到这一点?

欢迎来到现代Java。 该语法在Java中称为varargs

http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html

你可以这样想

void doSomething(final String[] olaf) {

}

唯一的区别是顾名思义,它是可变长度参数。 您可以使用0来调用任何数字或参数。 因此, doSomething("foo")doSomething("foo", "bar")doSomething("foo", "bar", "baz")都受支持。

但是,为了使用List参数调用此方法,您必须首先将列表转换为String[]

这样的事情会做:

List<String> myList; // Hope you're acquainted with generics?

doSomething(myList.toArray(new String[myList.size()]));

String...只是String[] 所以只需循环遍历列表并创建一个String数组并传递该数组或更简单的方法来使用Collection类的.toArray(new String[collection.size()])方法。

String ...与String []相同。

你想打电话给:

String[] listArr = list.toArray( new String[ list.size() ] );
doSomething( listArr );

使用.toArray(new String[0]) toArray()方法将您的字符串列表( java.util.List<String> )转换为String对象数组。

'...'语法是一种允许可变数量参数的机制。 你可以传递像doSomething("abc", "def", "ghi")doSomething("abc")doSomething(new String[] { "abc", "def", "ghi" }) 该函数将它们全部视为数组(分别为长度3,1和3)。

请参阅以下内容将String的List转换为String Array

List<String> listOfString = new ArrayList<String>();
        listOfString.add("sunil");
        listOfString.add("sahoo");
        String[] strResult=new String[listOfString.size()];
        strResult =  listOfString.toArray(strResult);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM