Alguém pode me ajudar com métodos genéricos? [RESOLVIDO]
3 respostas
leonardo.moreti
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?
A linha abaixo utiliza o método inspect declarado com generics. Funciona perfeitamente:
Integeri1=teste.inspect(newInteger("10"));
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.
Integeri2=teste.inspect2(newInteger("10"));
Segue o código completo, obviamente com erro na linha indicada.
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.
pablosaraiva
Só complementando.
Sem generics, o compilador te deixa fazer coisas do tipo: