Varargs e sobrecarga de métodos  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
Schuenemann
GUJ Ranger

Membro desde: 13/01/2005 12:31:27
Mensagens: 854
Offline

Métodos:


Chamada:


Por que é chamado o primeiro método e como fazer para o segundo ser o chamado?
mateusbrum
JavaBaby
[Avatar]

Membro desde: 21/01/2007 22:55:29
Mensagens: 84
Offline

Boa tarde Schuenemann!
Deve haver algum equivoco na tua conclusão , pois uma collection nada tem a ver com um Objeto Array;
Se por acaso o overload fosse da seguinte maneira:

metodo void (String [] o){}
metodo void (String ... o){}

O compilador em tempo de execulsão escolheria o primeiro método, pois isso seria "mais natural".

Mateus Henrique Brum
Analista Programador Java

Sun Certified Java Programmer 6.0
Sun Certified Web Component Developer 5.0
[Email]
Schuenemann
GUJ Ranger

Membro desde: 13/01/2005 12:31:27
Mensagens: 854
Offline

Mas, eu não concluí nada...

Como passei um Map, eu esperava que ele chamasse o método que recebe um Map. Só que ele cria um array, coloca o Map na primeira posição e chama o método que recebe array.
peerless
GUJ Master
[Avatar]

Membro desde: 22/01/2007 14:52:26
Mensagens: 1391
Localização: Porto Alegre / RS
Offline

Utilize Generics se for o caso. E transforme o segundo parâmetro em um Objeto do tipo Map (na hora de enviar o argumento)

follow me
pitacos

"The most problems that teams face are about communication, and all the others are too." - Dan North





[MSN]
Schuenemann
GUJ Ranger

Membro desde: 13/01/2005 12:31:27
Mensagens: 854
Offline

Não dá pra usar generics no primeiro (não tem muito sentido) e o segundo método já usa.
Sobre transformar, fazer cast para Map<String, Object> faz chamar o "correto", mas, por que fazer isso, se a referência já era Map<String, Object>? Por que precisa fazer um cast para o próprio tipo?
peerless
GUJ Master
[Avatar]

Membro desde: 22/01/2007 14:52:26
Mensagens: 1391
Localização: Porto Alegre / RS
Offline

Por que todo mundo é filho de Object (lembra?), caso não explicite qual tipo você passa para aceitar, o Object via comer todo mundo que vier por prioridade.


follow me
pitacos

"The most problems that teams face are about communication, and all the others are too." - Dan North





[MSN]
Schuenemann
GUJ Ranger

Membro desde: 13/01/2005 12:31:27
Mensagens: 854
Offline

Como assim?
O normal é pegar o tipo mais específico.

mateusbrum
JavaBaby
[Avatar]

Membro desde: 21/01/2007 22:55:29
Mensagens: 84
Offline

Estranho...
Nos meus teste ele utilizou o método do Map!?
Poderia postar teu teste por completo ?

Mateus Henrique Brum
Analista Programador Java

Sun Certified Java Programmer 6.0
Sun Certified Web Component Developer 5.0
[Email]
Schuenemann
GUJ Ranger

Membro desde: 13/01/2005 12:31:27
Mensagens: 854
Offline

mateusbrum wrote:Estranho...
Nos meus teste ele utilizou o método do Map!?
Poderia postar teu teste por completo ?


Eu tirei o cast e passou a pegar o do Map. Isso é esquisito demais. A única coisa que fiz foi colocar o cast e depois tirar.
Alguma coisa o Netbeans fez para acontecer isso. Estou sem entender.
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team