| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2009 19:49:44
|
danieldomingues86
Java Ninja
![[Avatar]](/images/avatar/4ce7f4958b31b6e7bde08c7782ca98b1.png)
Membro desde: 20/05/2009 15:10:03
Mensagens: 273
Offline
|
Ola pessoal,
Estou estudando o funcionamento dos WildCards, mas estou com uma duvida, aonde eu comentei como SAMPLE 3 gostaria de saber
oque que eu posso colocar dentro daquelas duas listas , e se alguem pudesse me dar um exemplo de codigo agradeceria, pois ja tentei algumas coisas e nao deu certo.
|
Borland CaliberRM Certified
Sun Certified Java Programmer 6
Sun Certified Web Component Developer 5
Oracle Certified Associate, Java SE 5/SE 6
OCPBCD - Estudando.....
Bacharel em Ciências da Computação
"Grandes conquistas vem com grandes sacrificios."
LinkedIn: http://br.linkedin.com/in/danieldomingues86 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2009 18:15:17
|
luBS
JavaBaby
Membro desde: 10/05/2006 14:00:27
Mensagens: 86
Localização: São Paulo
Offline
|
Vc não pode incluir nada em listas com WildCards do tipo: ? extends Class
Por que?
Porque isso é valido:
Uma lista de algo que extends Number pode ser uma lista de integer, float, double etc.
Vc tem certeza de que o que está ali dentro é no minimo um Number, por isso o get retorna Number, mas não tem certeza exatamente do tipo que seu objeto (ArrayList) é, qual subtipo de Number ArrayList é, então não pode adicionar um Integer pois se o ArrayList for de Float, vai dar pau.
É mais ou menos isso hehe tanto que os wildcards vc só pode usar para as referencias e não para criar objetos: new ArrayList<? extends Number>() não funciona, pois o objeto tem que ser de apenas um tipo
Exemplos praticos disso seria algo como:
Ou seja, crio métodos que recebem uma lista de algo que eu sei, mas essas listas podem ser de subtipos (e como não sei qual é o subtipo exatamente, eu não posso incluir nada ali dentro)
Ah, e não necessariamente se usa wildcards apenas com collection, por exemplo, quero criar um método que só receba classes que são do tipo Number:
Espero ter ajudado
|
http://luizroos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2009 22:10:01
|
danieldomingues86
Java Ninja
![[Avatar]](/images/avatar/4ce7f4958b31b6e7bde08c7782ca98b1.png)
Membro desde: 20/05/2009 15:10:03
Mensagens: 273
Offline
|
Ola luBS,
Muito obrigado pela explicacao, ajudou bastante sim , agora entendi que o conceito de usar ? extends justamente eh usado para passagem de parametros em metodos metodos ou para tipos de retorno de metodos e nao para criar colecoes.
vlw.
|
Borland CaliberRM Certified
Sun Certified Java Programmer 6
Sun Certified Web Component Developer 5
Oracle Certified Associate, Java SE 5/SE 6
OCPBCD - Estudando.....
Bacharel em Ciências da Computação
"Grandes conquistas vem com grandes sacrificios."
LinkedIn: http://br.linkedin.com/in/danieldomingues86 |
|
|
 |
|
|
|
|