| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2006 15:56:02
|
spycall
JavaTeenager
![[Avatar]](/images/avatar/c54bc2ded4480856dc9f39bdcf35a3e7.jpg)
Membro desde: 26/04/2005 14:29:59
Mensagens: 189
Localização: São paulo
Offline
|
Olá, estou com uma dúvida.
tenho uma collection de objetos que possuem o metodo getValue();
Gostaria de fazer uma classe MyCollection que quando eu executar um método ele fizesse a soma dos valores, exemplo :
Minha dúvida está em como fazer a implementação para que o método soma use o metodo getValue dos objetos ?
|
No mundo existem 10 tipos de pessoas, as que conhecem e as que não conhecem binário. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2006 16:00:16
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Se esses tais objetos que têm o método "getValue()" implementarem uma interface que tem o método getValue:
aí é bem mais fácil, e você nem precisa ter uma classe MyCollection. Simplesmente crie um método que pega a tal collection e soma os valores dos objetos que implementam IValue.
Se você não pode alterar as classes dos objetos para que implementem a tal interface, então fica muito mais lento, porque você precisa checar objeto por objeto, usando reflection, se ele tem um método chamado getValue, e se ela não tem parâmetros e retorna double. Isso é lento.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2006 22:08:10
|
nicoweda
JavaChild
![[Avatar]](/images/avatar/b98a3773ecf715751d3cf0fb6dcba424.jpg)
Membro desde: 04/04/2005 10:44:40
Mensagens: 122
Offline
|
Eu acredito que a logica a ser utilizada é essa mesma, porem eu utilizaria os recursos do Java 5 a nosso favor, vejam o código abaixo como é mais limpo e faz praticamente a mesma coisa...
Lendo em miudos, o metodo some recebe um List de qualquer Objeto que passe no teste instanceOf (É UM) de IValue.
Em seguida utilizamos o for aprimorado para trabalhar com a Collection.
MAs vale lembrar de que isso só funciona se estiver utilizando a versão 5 do Java!!!
Um grande abraço!!
|
Bruno Nicoletti Siqueira |
|
|
 |
|
|