Quer dizer isso… e, por isso vc nao pode colocar Object… porque pleo fato de o tipo ser qualquer coisa que eh super classe de Integer, pode ser por exemplo um Number… e se vc tentar colocar um Object em uma lista que recebe Number pode dar erro. Por isso, vc só pode colocar Integer. Em tempo de compilação não tem como saber qual vai ser o real tipo do objeto, por isso dá erro.
LPJava
vc pode colocar um Integer ou um number, mais nao um Object, lembre-se qualquer classe em java é um Object, entao ai vc poderia colocar a coisa errada… String é um Object, sua_class É-um Object.
R
RafaelVS
LP, ele não pode colocar um Number não, seguindo a mesma idéia que vc disse que se isso fosse possível, ele poderia colocar a coisa errada.
lembre-se de que um Number poderia ser um Double ou um Float, por exemplo… e se ele tentasse colocar um desses em uma coleção de Integer, daria erro do mesmo jeito.
Inclusive, vcs podem ver que no autocomplete do IDE, pelo fato do tipo genérico ser <? super Integer>, o método add já é modificado para receber um Integer e, portanto, só pode-se colocar algo que passe no teste É-UM Integer.
[]'s
LPJava
hum é verdade… eu me confudi… ele so pode colocar o que passa no teste é-um para integer… e Number não é um integer o inverso é eh verdade se fosse <? super Number> Ja que um Integer é-um number.
olha essa classe:
o meu metodo so recebe superclass de Banda que é carnaval se eu passar um conjunto para o método do tipo bloco ele nao compila, porem eu posso adicionar ao meu conjunto tudo que passar no teste é-um para Banda.