首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类型中的方法func(List<Object>)不适用于参数(List<String>)

类型中的方法func(List<Object>)不适用于参数(List<String>)
EN

Stack Overflow用户
提问于 2013-12-03 15:58:35
回答 4查看 22.7K关注 0票数 5

我已经尝试过这两段代码,但这两个代码都有错误。下面附上的是两个部分和两个错误,我正在得到。我想了解一下为什么会发生这种情况。

示例1

代码语言:javascript
复制
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

代码语言:javascript
复制
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>)

EN

回答 4

Stack Overflow用户

发布于 2013-12-03 16:11:06

该方法不适用,因为StringObject,但List<String>不是List<Object>

票数 8
EN

Stack Overflow用户

发布于 2013-12-03 16:13:00

为什么不能将List<String>传递给List<Object>

代码语言:javascript
复制
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>

代码语言:javascript
复制
void bing(List<String> strings) {
    for (String s : strings) print(x.charAt(0));
}
bing(Arrays.toList((Object)1,(Object)2,(Object)3));
票数 2
EN

Stack Overflow用户

发布于 2013-12-03 16:02:56

代码语言:javascript
复制
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>的方法。它将只在相同类型的参数下工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20355809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档