如果我有一堂课:
public class GenericClass<TBlah extends Number> {
public List<String> getList() {
return null;
}
}
当我尝试从另一个类中使用该方法时:
public class OtherClass {
public void test() {
GenericClass a = null;
for (String s : a.getList()) {
}
}
}
为什么a.getList()
返回 aList<Object>
直到我将 for 循环上方的行更改为:
GenericClass<Number> a = null;
在什么时候 a.getList() 返回一个List<String>
它应该做的事情?
编辑:我不明白为什么getList()
我声明变量“a”的方式会影响由 指定的合同。getList()
总是返回 a List<String>
,不管TBlah是什么。