【发布时间】:2015-05-16 23:51:56
【问题描述】:
在下面的代码中,方法“bla()”返回的是Object的ArrayList而不是String,这是怎么回事?
public class MyClass<T>{
public ArrayList<String> bla(){
return new ArrayList<String>();
}
public static void foo(){
new MyClass().bla().add([here auto complete says "Object" not "String"])
}
}
【问题讨论】:
-
当我将该代码粘贴到 IntelliJ 时,它指出方法“添加”需要一个字符串
-
edit: public class MyClass
现在需要 Object... -
这很奇怪,甚至更奇怪,如果您将行更改为
new MyClass<>().bla().add();它会将 String 作为参数 -
谢谢,没想到!正是我需要的
-
很高兴能帮上忙,但我想知道它为什么会这样!
标签: java oop generics arraylist