qualquer classe que passar no teste É-UM é valido por exemplo: Você pode passar ali: Integer, Double, porém não pode passar um Object, String ja que essas classes não passa no teste É-UM para a class Number.
E nesse caso quando você usa é que você vai usar o tipo genericos dentro no método, normalmente é quando você nao declara na class.
Uma coisa que fiz aqui no trabalho e pode ser um exemplo legal tambem. Eu tinha um Map “não generico” e precisava retornar um objeto daquele map. Para facilitar o meu lado e evitar erros de cast, decidi passar o tipo do objeto esperado no metodo tambem para que ele me retornasse o objeto convertido. O resultado ficou mais ou menos assim:
public <T> T get(Class<T> clazz, String key) {
Object o = map.get(key);
if (o instanceof T)
return (T) o;
return null;
}
Raff
Ow LPJava eu fiz assim aqui em casa no eclipse e ele não de pau nenhum cara ou eu não to entendendo ou não sei mais nada tipo olah só ...
A minha duvida é a seguinte por que ali no argumente de List<String> o compilador permitiu que eu colocasse um tipo parametrizado String, sendo que String não passa no teste É UM de Number............
Raff
alguem poderia me ajudar aqui…
A
Alexandre_Ferreira1
O teste É UM de Number é para o tipo do objeto.
O objeto deve ser uma classe que seja sub-class de Number. Exemplo de uma sub-class de Number é Integer.
Esse codigo nao deu erro porque voce nao referenciou o E no argumento.
E passa uma String novamente, verá que vai da um erro de compilação
LPJava
cara seu argumento do metodo no minimo nao tem nada ver com genericos… se vc definir que seu argumento é String e nao tem nada ver com o tipo generico que vc passou antes do void… o que acontece com generico?
aonde tem a variavel (T ou E, ou outra qualquer) ele vai substituir com o tipo… o exemplo afsrj reflete nisso que falei