public static void main(String[] args) {
List<String> strlist = new ArrayList<String>();
strlist.add("sdfs1");
strlist.add("sdfs2");
String[] strarray = (String[]) strlist.toArray();
System.out.println(strarray);
}
错误:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
at test.main(test.java:10)
答案 0 :(得分:98)
你想要
String[] strarray = strlist.toArray(new String[0]);
请参阅here以获取文档,并注意您也可以调用此方法,使其填充传递的数组,而不是仅使用它来确定要返回的类型。另请注意,也许当您打印阵列时,您更喜欢
System.out.println(Arrays.toString(strarray));
因为那将打印实际元素。
答案 1 :(得分:18)
public static void main(String[] args) {
List<String> strlist = new ArrayList<String>();
strlist.add("sdfs1");
strlist.add("sdfs2");
String[] strarray = new String[strlist.size()]
strlist.toArray(strarray );
System.out.println(strarray);
}
答案 2 :(得分:3)
List.toArray()
必然会返回一个Object数组。要获取String数组,需要使用转换语法:
String[] strarray = strlist.toArray(new String[0]);
有关更多内容,请参阅java.util.List的javadoc。
答案 3 :(得分:2)
我为这类任务设计并实施了Dollar:
String[] strarray= $(strlist).toArray();
答案 4 :(得分:0)
希望这可以帮助那些人:
列表清单= ..;
String [] stringArray = list.toArray(new String [list.size()]);
答案 5 :(得分:0)
String [] strarray = strlist.toArray(new String [0]);
如果你想将List转换为字符串 使用StringUtils.join(slist,'\ n');