【发布时间】:2015-04-04 00:02:56
【问题描述】:
我正在尝试将字符串数组添加到 arrayList 。下面是代码:
import java.util.ArrayList;
import java.util.List;
import java.util.Collections;
import java.util.Arrays;
class AddAll{
public static void main(String[] args){
String[] words = {"apples","beef","corn","ham"};
List<String> list = Arrays.asList(words);
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("Youtube");
arrayList.add("Google");
arrayList.add("Facebook");
for(String x : arrayList){
System.out.printf("%s ",x);
}
System.out.println();
Collections.addAll(arrayList,list);
for(String x : arrayList){
System.out.printf("%s ",x);
}
}
}
但是,在编译期间它会抛出以下错误。我无法弄清楚如何解决它?有人可以帮我处理这段代码吗?
AddAll.java:21: error: method addAll in class Collections cannot be applied to given types;
Collections.addAll(arrayList,list);
^
required: Collection<? super T>,T[]
found: ArrayList<String>,List<String>
reason: inferred type does not conform to upper bound(s)
inferred: List<String>
upper bound(s): String,Object
where T is a type-variable:
T extends Object declared in method <T>addAll(Collection<? super T>,T...)
1 个错误
【问题讨论】:
-
你在哪里看到/找到像
Collections.addAll(arrayList,list);这样的方法? -
建议:如果您收到一个编译错误,告诉您无法找到或应用某个方法... 阅读 javadocs ... 了解该方法是否实际存在,并检查您是否使用正确数量和类型的参数调用它。
-
嗨斯蒂芬,谢谢你的建议。我只是在学习过程中。根据您的建议,我浏览了 javadocs,我可以看到该方法存在。现在的问题是如何使用它? :(
-
以下解决了这个问题:arrayList.addAll(list);
标签: java list arraylist collections