Ajuda com refection  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
caloro
Thread.start()

Membro desde: 28/04/2008 09:37:19
Mensagens: 42
Offline

Estou tentando fazer um metodo gravar generico, o q o metodo faiz:

nos paramentros eu mando:
1-uma string com a sql de insercao: "SELECT * FROM fn_inserirCidade(?,?)"
2-o objeto povoado da classe Cidade(como exemplo)

dentro do meu metodo eu pego o tpo da classe, pego os atributos da classe no caso os atributos da classe tem o mesmo nome do campo no banco, Cd_nome, Cd_uf, faco um for e no for eu pegaria o campo, o tipo do campo e executaria o get do campo:

O que eu consigo fazer: pegar o campo, o tipo dele e consigo pegar os metodos;
O que eu não consigo fazer: um if para ver se é do tipo int, boolean, double, só funciona pra String. E não sei como executar o metodo get do respectivo campo.

meu metodo até agora:


Nota: só o primeiro if funciona

se alguem puder me ajudar eu agradeco.

>

This message was edited 1 time. Last update was at 05/10/2008 21:20:55


"O maior prazer da vida é fazer o impossível"
[Email]
osmio
Java Ninja

Membro desde: 22/08/2006 20:27:54
Mensagens: 252
Offline

Cara, o primeiro passo é remover esse monte de if´s encadeados.

Procure utilizar o:


Até!

"O pensamento lógico pode levar você de A a B, mas a imaginação te leva a qualquer parte do universo."
- Einstein, Albert
[Email]
caloro
Thread.start()

Membro desde: 28/04/2008 09:37:19
Mensagens: 42
Offline

osmio wrote:Cara, o primeiro passo é remover esse monte de if´s encadeados.

Procure utilizar o:


Até!


bele...vou arrumar aki, mais o problema do meu if, é q se o campo dor do tipo int, ele retorna false na minha condicao, ele só consegue acar quando é String, nao sei c é pq int, boolean,... são tipos primitivos...mias nao entra no if

"O maior prazer da vida é fazer o impossível"
[Email]
renzonuccitelli
GUJ Master

Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline

No framework que desenvolvi como trabalho de graduação precisei saber o tipo do argumento (para os tipos primitivos) e setar valores para os mesmos. Segue a classe que faz isso:



Repare a partir do método buildParameterBasedOnAttribute que faz exatamente o que vc quer, aliado aos demais métodos privados buld.
Aproveitando para fazer uma proganda , o site do framework é: http://jcoltrane.sourceforge.net/index_pt.html
Espero ter ajudado.

Renzo Nuccitelli

Engenheiro de Computação - ITA

http://nuccitec.com.br/
http://blog.nuccitec.com.br/
http://jcoltrane.sf.net
http://jfera.nuccitec.com.br/
http://code.google.com/p/webapp-ce/
renzonuccitelli
GUJ Master

Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline

Explicando melhor, vc deve fazer a comparação da classe do objeto com a Classe Wrapper do tipo primitivo seguido da enum TYPE. EX para boolean:

parameterClass.equals(Boolean.TYPE)

onde parameterClass é classe do parametro. Ela retorn true se o parametro for do tipo primitivo boolean e false caso contrário.

Renzo Nuccitelli

Engenheiro de Computação - ITA

http://nuccitec.com.br/
http://blog.nuccitec.com.br/
http://jcoltrane.sf.net
http://jfera.nuccitec.com.br/
http://code.google.com/p/webapp-ce/
alots_ssa
JavaEvangelist

Membro desde: 19/07/2005 11:21:24
Mensagens: 469
Localização: Salvador
Offline

Ñão sou muito de indicar frameworks a não ser que realmente queira... Se seu objetivo for aprender reflection pode continuar que é um treino massa, se não, já pensou em considerar o hibernate para fazer este trabalho para vc?

Alberto

http://alots.wordpress.com
[WWW] [MSN]
caloro
Thread.start()

Membro desde: 28/04/2008 09:37:19
Mensagens: 42
Offline

alots_ssa wrote:Ñão sou muito de indicar frameworks a não ser que realmente queira... Se seu objetivo for aprender reflection pode continuar que é um treino massa, se não, já pensou em considerar o hibernate para fazer este trabalho para vc?

Alberto


Estpu tentando aprender reflection, até de uma lda em hibernate, masi vou deixar pra depois...to meio sem tempo..hehe, mais intaum...estava fazendo o meu metodo e funciona perfeitamente....pra classes que nao herdam de nenhuma outra, masi quando eu tenho uma heranca, eu nao cnsigo pegar os nomes ds atributos da classe pai, alguem pode me ajudar?

"O maior prazer da vida é fazer o impossível"
[Email]
victorwss
JWizard
[Avatar]

Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline

caloro wrote:
alots_ssa wrote:Ñão sou muito de indicar frameworks a não ser que realmente queira... Se seu objetivo for aprender reflection pode continuar que é um treino massa, se não, já pensou em considerar o hibernate para fazer este trabalho para vc?

Alberto


Estpu tentando aprender reflection, até de uma lda em hibernate, masi vou deixar pra depois...to meio sem tempo..hehe, mais intaum...estava fazendo o meu metodo e funciona perfeitamente....pra classes que nao herdam de nenhuma outra, masi quando eu tenho uma heranca, eu nao cnsigo pegar os nomes ds atributos da classe pai, alguem pode me ajudar?

This message was edited 1 time. Last update was at 07/10/2008 14:33:29


Victor Williams Stafusa da Silva

Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.

Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.

Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.


É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).


Se você escreve "concerteza", "concerteza" você andou matando aulas de português.
[MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team