[RESOLVIDO]Problema com classes

12 respostas
Viniciustelles

Bom dia pessoal, preciso inserir no banco alguns registro vindos de um arquivo xml e estou com problema em popular meus objetos para inseri-los

EX: tenho a classe Cabecalho

public class Cabecalho {
    
    private IdentificacaoTransacao identificacaoTransacao;
    private Origem origem;
    private Destino destino;
    private String versaoPadrao;
    private IdentificacaoSoftwareGerador identificacaoSoftwareGerador;
try {
            XStream xstream = new XStream(new Dom4JDriver());
            xstream.processAnnotations(MensagemSIB.class);
            
            BufferedReader input = new BufferedReader(new FileReader("c:\\fileTeste.xml"));
            MensagemSIB bl = (MensagemSIB) xstream.fromXML(input);
            
            Cabecalho cabecalho = bl.getCabecalho();
            Cabecalho c = new Cabecalho();
[b]//NESTA LINHA ACUSA O ERRO [/b]
            c.setIdentificacaoTransacao(cabecalho.getIdentificacaoTransacao().getTipoTransacao());
            
            ConectaBanco con = new ConectaBanco();
            boolean retorno = con.insereCabecalho(c);
            if (retorno = true) {
                System.out.println("Dados gravados com sucesso!");
            } else {
                System.out.println("Houve erro ao salvar!");
            }
Este é o erro

[url]http://img38.imageshack.us/img38/9867/erromt.jpg[/url]

oque posso fazer?

12 Respostas

Joao_Alonso

c.setIdentificacaoTransacao(cabecalho.getIdentificacaoTransacao().getTipoTransacao());

Vendo bem por cima parece que vc precisa de um obejto da classe IdentificacaoTransacao nesse set ? não seria só

c.setIdentificacaoTransacao(cabecalho.getIdentificacaoTransacao()); ?
Viniciustelles

Acho que nao pois em minha classe cabecalho ja contem ele

Joao_Alonso

no metodo setIdentificacaoTransacao()? qual tipo de objeto ele recebe ?

e no getTipoTransacao() q tipo de objeto ele retorna ?

Viniciustelles

Retorna uma String mas o probema nao eh o retorno e sim as dependencias eu acho

Joao_Alonso

e no set oq recebe ?

no erro acho q fala de conversão citando a String e o tipo do objeto que deveria ser passado como argumento.

fabriciov
c.setIdentificacaoTransacao(cabecalho.getIdentificacaoTransacao().getTipoTransacao());

Necessário:
IdentificacaoTransacao

Encontrado:
String

é o que o jalonso falou,
você esta passando uma string onde deveria receber um objeto do tipo IdentificacaoTransacao

Viniciustelles

Voce tem alguma dica de como posso fazer isso então???

fabriciov

Sem conhecer mais a fundo o programa é dificil, mas chutando creio que se você simplemente fizer isso pode ser que funcione

c.setIdentificacaoTransacao(cabecalho.getIdentificacaoTransacao());
Viniciustelles

Já tentei desta maneira, erro não da mas oque acontece eu preciso buscar três atributos que estão em IdentificacaoTransacao e se fizer assim ele não sabe qual eu quero e da erro na hora de inserir no banco.

fabriciov

chame os métodos get do objeto passado.

public void setIdentificacaoTransacao(IdentificacaoTransacao it){
          String atributo1 = it.getTipoTransacao();
}
Viniciustelles

Muito obrigado aqui funcionou

R

Pelo q notei vc esta precisando passar o tipo de transacao para a sua classe ConectaBanco. Para que isso aconteca vc deveria declarar uma variavel String para receber o conteudo final de getTipoTransacao() que por sinal e uma String. Ai sim passar essa variavel String como parametro para o metodo inserirCabecalho(), e nao tentar setar uma variavel Cabecalho em seu setIdenticacao() como String, que e o que vc esta fazendo. Outra solucao seria encurtar o caminho e passar direto para con.inserirCabecalho(cabecalho.getIdentificacaoTransacao().getTipoTrgetTipoTransacao());

Falou
Robson

Criado 18 de junho de 2012
Ultima resposta 19 de jun. de 2012
Respostas 12
Participantes 4