Reflexao - Chamada de metodo set com int e Integer  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
fellipaum
Entusiasta Java

Membro desde: 17/09/2007 11:46:36
Mensagens: 24
Offline

Bom dia,
estou com um problema na chamade de um metodo set via reflaxão.
Na classe ele esta definido como "setNumItens(Integer x)", recebendo o objeto Integer.
Quando vou fazer a chamada do metodo via reflexao ele da erro pq no getMethod eu passo o class do int(Integer.TYPE). Para tentei tratar esse tipo de erro, eu passo o class do proprio Integer, so que ele continua printando a mesma excessao.

java.lang.NoSuchMethodException: Legislacao.setNumItens(int)
at java.lang.Class.getMethod(Class.java:1605)
at util.EditArtefato.callSet(EditArtefato.java:156)
at util.EditArtefato.saveMethods(EditArtefato.java:11
at util.EditArtefato.main(EditArtefato.java:213)

Segue o codigo:


Alguem sabe uma solução que nao seja alterar o set pra receber um int??
Obs: essa chamada funciona normal se o metodo receber um int.

Felipe Lobo
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline

Não entendi sua duvida.

Poste a classe de modelo que voce quer pegar o método.

Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

int.class - é a "classe" do tipo primitivo int.
Integer.class - é a classe do tipo objeto java.lang.Integer.

Satisfeito?
fellipaum
Entusiasta Java

Membro desde: 17/09/2007 11:46:36
Mensagens: 24
Offline

Não entendi sua duvida.

Poste a classe de modelo que voce quer pegar o método.

Esse eh o metodo que estou querendo invocar:

public void setNumItens(Integer value) {
this.numItens = value;
}


entanglement wrote:int.class - é a "classe" do tipo primitivo int.
Integer.class - é a classe do tipo objeto java.lang.Integer.

Satisfeito?

Isso eu sei.
O que estou querendo saber eh pq mesmo passando o "Integer.class" no getMethod ele continua dizendo que o metodo nao existe? Sendo que o method existe.

This message was edited 1 time. Last update was at 11/06/2010 10:48:09

weberdls
Debugger

Membro desde: 23/02/2007 13:52:13
Mensagens: 66
Offline

Posso estar viajando, mas esta linha aqui :

"java.lang.NoSuchMethodException: Legislacao.setNumItens(int)"

Está afirmando, que você está passando int.class como parameter type, quando seu método tem como parameter type um Integer.
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline

Integer.TYPE retorna o class do tipo primitivo int
Integer.class retorna o class de Integer

Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
asaudate
GUJ Master
[Avatar]

Membro desde: 01/09/2007 19:31:41
Mensagens: 1794
Localização: São Paulo
Offline

Como, no meio de tanta confusão, não está bem claro o que você quer, segue exemplo de invocação de método com integer:



Note que o método eco recebe um Integer, devolve como int, que depois é transformado em Object (na saída do invoke()) e, mesmo assim, tudo ocorre bem. O que eu acho mais provável que tenha acontecido é que você tenha errado algum parâmetro do método..

[]´s

Alexandre Saudate
__________________________

Do not try to bend the spoon - that's impossible. Instead, only try to realize the truth: there is no spoon.

Série quickstart: Spring+Spring Security+Jersey (REST) +Hibernate (JPA) -> https://github.com/alesaudate/kickstart-springjerseyhibernate

Evite usar Axis2!!! Leia aqui para mais detalhes!

@alesaudate
Quer ler um blog especializado em web services e SOA?

fellipaum
Entusiasta Java

Membro desde: 17/09/2007 11:46:36
Mensagens: 24
Offline

asaudate wrote:O que eu acho mais provável que tenha acontecido é que você tenha errado algum parâmetro do método..

Resolvido o problema, foi erro na minha codificação.
Antes eu estava lançando a exceçao dentro do catch independe das invocações dentro dos ifs e elses que estavam dentro do catch, por isso que estava sempre lançando exceção.
Por isso que estava sempre printando o:
"java.lang.NoSuchMethodException: Legislacao.setNumItens(int)"
Foi mal ae.

Mark_Ameba wrote:
Integer.TYPE retorna o class do tipo primitivo int
Integer.class retorna o class de Integer

Eu sei disso, so q se vc olhar no catch do codigo que eu postei, eu estava invocando o mesmo metodo passando Integer.class(dentro do catch),

e ainda sim tava dando exceção(so que era erro na minha logica).
Vlw pelas ajudas.

Felipe Lobo
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team