Проблема с типизацией при наследовании.
От: Аноним  
Дата: 17.01.08 10:17
Оценка:
Помогите пожалуйста с ответом на вопрос почему не компилирутся следующий код

import java.util.Set;

public class FirstClass<T> {
  private T _field;
  private Set<Integer> _ints;

  public T getField() {
    return _field;
  }

  public Set<Integer> getInts() {
    return _ints;
  }
}

class SecondClass extends FirstClass{

  public void sameMetod(){
    for (Integer intVar : getInts()) {   /// проблемная строка
       // do samething
    }
  }
}


Проблема заключается в том, что компилятор жалуется на intVar и не видит что метод типизирован.

Error:Error:line (25)incompatible types
found : java.lang.Object
required: java.lang.Integer


Но если указать типизацию при наследовании то проблема исчезает и код начинает компилироваться при объявлении SecondClass следующим образом :

class SecondClass extends FirstClass<Object>{


Почему так происходит непонятно, помогите ПЛЗ.

PS К сожалению самостоятельный поиск и опрос окружающих девелоперов ответа не дал((((
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.