我已经尝试过这两段代码,但这两个代码都有错误。下面附上的是两个部分和两个错误,我正在得到。我想了解一下为什么会发生这种情况。
示例1
static List<String> list = new ArrayList<String>();
public static void main(String[] args) {    
  func(list);    
}
private static void func(List<Object> lst) {                
}错误:
The method func(List<Object>) in the type is not applicable for the arguments (List<String>)
示例2
static List<Object> list = new ArrayList<Object>();
public static void main(String[] args) {
    func(list);    
}
private static void func(List<String> lst) {
}           错误:
The method func(List<String>) in the type is not applicable for the arguments (List<Object>)
发布于 2013-12-03 16:11:06
该方法不适用,因为String是Object,但List<String>不是List<Object>。
发布于 2013-12-03 16:13:00
为什么不能将List<String>传递给List<Object>
void bong(List<Object> objs) {
    objs.add ( new Integer(42) );
}
List<String> strings = Arrays.toList("foo", bar");
bong(strings);    // not allowed because ... see next line
for (String s : strings) print(x.charAt(0));只有当方法无法修改传递的列表时,这才是安全的。不幸的是,大多数Java类是可变的,大多数列表实现也是可变的。
为什么不能将List<Object>传递给List<String>
void bing(List<String> strings) {
    for (String s : strings) print(x.charAt(0));
}
bing(Arrays.toList((Object)1,(Object)2,(Object)3));发布于 2013-12-03 16:02:56
static List<Object> list = new ArrayList<Object>();
public static void main(String[] args) {
    func(list);
}
private static void func(List<Object> lst) {
}这应该与正确的导入 (java )一起工作。
不能将List<Object>提供给具有参数List<String>的方法。它将只在相同类型的参数下工作。
https://stackoverflow.com/questions/20355809
复制相似问题