Alguém pode me ajudar com métodos genéricos? [RESOLVIDO]  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
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

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.
sergiotaborda
GUJ Expert
[Avatar]

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
[WWW]
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.
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team