| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 08:43:55
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
Alguém pelo amor de Deus consegue me ajudar a entender uma assinatura desta maneira:
Sei que está por trás o conceito de Método Genérico, certo?
Abração a todos.
André AS
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 09:07:40
|
nel
JWizard
![[Avatar]](/images/avatar/1a9537e58dcb1a9913e1fc10c65c7994.jpg)
Membro desde: 01/10/2009 13:51:10
Mensagens: 2364
Offline
|
Aceita uma lista de qualquer tipo de Objeto e retorna um objeto que extenda comparable, sendo que este comparable aceita qualquer Objeto pai de T.
Sim, trata-se de generico, mas me responda, está trabalhando com isto ou foi a título de curiosidade?
P.s: verifique a questão de ? super T, vale a pena.
Abraços.
|
"Se houver a terceira guerra mundial eu não sei como será mas a quarta será com paus e pedras" Albert Einsten. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 09:22:32
|
Leonardo3001
GUJ Ranger
Membro desde: 04/07/2007 18:28:58
Mensagens: 975
Offline
|
nel wrote:Aceita uma lista de qualquer tipo de Objeto e retorna um objeto que extenda comparable, sendo que este comparable aceita qualquer Objeto pai de T.
Sim, trata-se de generico, mas me responda, está trabalhando com isto ou foi a título de curiosidade?
P.s: verifique a questão de ? super T, vale a pena.
Abraços.
Err... não. O retorno é void.
A parte <T extends Comparable<? super T>> apenas restringe o tipo genérico que é aceitável.
Quando digo <T extends Comparable>, quero dizer que o parâmetro genético T pode ser de qualquer tipo, deste que implemente a interface Comparable (caso contrário, é erro de compilação).
Camparable também possui um tipo genérico, por isso também é "generificado" na declaração acima. A expressão <? super T> quer dizer: o Comparable pode ser de qualquer tipo T ou qualquer classe pai de T ou qualquer interface que T implemente. É mais fácil de explicar com um exemplo.
Suponha uma classe chamada Animal:
A classe Gato pode ser usado no método sort
porque implementa Comparable, cujo tipo genérico é o mesmo da classe.
A classe Cachorro também pode ser usado
porque implementa Comparable, cujo tipo genérico não é o mesmo da classe, mas é supertipo da classe.
Agora a classe Iguana não pode ser usado
porque, apesar de implementar Comparable, seu tipo genérico não tem relação de supertipo com a classe Iguana.
Espero que tenha sido claro.
|
Leonardo Veríssimo
-------------------------------------------------
Objectzilla |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2010 09:27:49
|
nel
JWizard
![[Avatar]](/images/avatar/1a9537e58dcb1a9913e1fc10c65c7994.jpg)
Membro desde: 01/10/2009 13:51:10
Mensagens: 2364
Offline
|
Ops...não vi o "void" ao lado do método.
Foi explicado com maiores detalhes, mas se quiser, aqui tem algo sobre Generics.
Obrigado pela correção
|
"Se houver a terceira guerra mundial eu não sei como será mas a quarta será com paus e pedras" Albert Einsten. |
|
|
 |
|
|