Если у меня есть класс:
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()
возвращает a List<Object>
, пока не измените строку над циклом for на:
GenericClass<Number> a = null;
В какой момент a.getList() возвращает a List<String>
как он должен делать?
Изменить: я не понимаю, почему контракт, указанный getList()
, должен быть затронут, как я объявляю свою переменную 'a'. getList()
всегда возвращает a List<String>
, не имеет значения, что TBlah.