| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2009 17:21:09
|
leonardo.moreti
Entusiasta Java
Membro desde: 30/10/2009 08:22:49
Mensagens: 18
Localização: Sorocaba/SP
Offline
|
Oi pessoal. Estou estudando generics, e cheguei na parte que aborda métodos e construtores generic. Eu vi este exemplo no site da Sun, uma definição de um método generic:
O método inspect pode receber qualquer objeto como argumento, e ele imprimirá na saída padrão o nome da classe desse objeto.
A minha dúvida é: Qual a utilidade de métodos generics? Não seria a mesma coisa se eu deixasse o parâmetro do método como Object ao invés de definir um generic? Para que realmente serve utilizar métodos generics, qual são os benefícios?
This message was edited 1 time. Last update was at 02/12/2009 13:51:13
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2009 18:04:30
|
pablosaraiva
JavaGuru
Membro desde: 27/03/2009 17:08:37
Mensagens: 243
Offline
|
Fazendo uma pequena alteração no código, vou te mostrar onde você pode usar generics e não consegue usar object.
A linha abaixo utiliza o método inspect declarado com generics. Funciona perfeitamente:
Já esta linha, utiliza a função declarada com Object. Não funciona. (A não ser que seja feito um typecast, o que é exatamente o que o generics tenta evitar.
Segue o código completo, obviamente com erro na linha indicada.
|
Existem 10 tipos de pessoas no mundo. As que conhecem binário e as que não. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2009 18:07:34
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
leonardo.moreti wrote:Oi pessoal. Estou estudando generics, e cheguei na parte que aborda métodos e construtores generic. Eu vi este exemplo no site da Sun, uma definição de um método generic:
O método inspect pode receber qualquer objeto como argumento, e ele imprimirá na saída padrão o nome da classe desse objeto.
A minha dúvida é: Qual a utilidade de métodos generics? Não seria a mesma coisa se eu deixasse o parâmetro do método como Object ao invés de definir um generic? Para que realmente serve utilizar métodos generics, qual são os benefícios?
Nesse caso em particular dá no mesmo. Esse método nem deveria ser genérico.
Agora, se vc defenir o U na classe em vez de no construtor, ai sim tem vantagens.
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2009 18:11:14
|
pablosaraiva
JavaGuru
Membro desde: 27/03/2009 17:08:37
Mensagens: 243
Offline
|
Só complementando.
Sem generics, o compilador te deixa fazer coisas do tipo:
O erro apareceria apenas em tempo de execução.
Já usando o método declarado com generics, o erro seria apontado em tempo de compilação.
|
Existem 10 tipos de pessoas no mundo. As que conhecem binário e as que não. |
|
|
 |
|
|