Duvida com WildCards  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
danieldomingues86
Java Ninja
[Avatar]

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
[MSN]
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/
danieldomingues86
Java Ninja
[Avatar]

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