Erro não é possível converter String para Uf

Tenho o seguinte trecho de código que basicamente com o CEP informado recupera os dados, de rua, bairro, estado e cidade. O erro é o seguinte meu objeto Uf estado da erro, pois não é possível converter String para este meu objeto do tipo Uf. O que eu possa estar fazendo para dar certo. Se eu trocar para String resolve o problema, mas na hora de gravar os dados da erro, pois meu outro Objeto do tipo CLIENTE espera um objeto do tipo Uf. Alguma dica?

Já tentei, mas não acontece nada?

Object o = buscaCep.getUf().toUpperCase();
Uf estado = o ;
cbbUf.getModel().setSelectedItem(estado);

private void btnPesquisaCEPActionPerformed(java.awt.event.ActionEvent evt)
{
    WebServiceCep buscaCep = WebServiceCep.searchCep(txtCEP.getText());
    txtEndereco.setText(buscaCep.getLogradouroFull().toUpperCase());
    txtBairro.setText(buscaCep.getBairro().toUpperCase());
    Uf estado = buscaCep.getUf().toUpperCase();
    cbbUf.getModel().setSelectedItem(estado);
    String cidade = buscaCep.getCidade().toUpperCase();
    cbbCidade.getModel().setSelectedItem(removerAcentos(cidade));
}
1 curtida

Cria o objeto:

 Uf uf = new Uf();
 //usa o nome do atributo q vc tm lá
 uf.setDescricao( buscaCep.getUf().toUpperCase());
2 curtidas

Observações:

Object o = buscaCep.getUf().toUpperCase();//o armazena uma string o que vc vai enviar para o combobox

Uf estado = o ;//mesmo que vc faça um casting Uf estado = (Uf) o; vai dar erro pois são objetos diferentes um é Uf e outro String

cbbUf.getModel().setSelectedItem(estado);//estado não é uma String

Avaliação:

Pelo que entendi Uf é um objeto que faz referência ao estado e a classe cliente espera um objeto do tipo Uf; Então provavelmente Uf deve possuir uma variável do tipo String que armazene o nome do estado, se não tiver basta criar.

Exemplo.:

public class Uf{

    private String uf;

    public Uf(String uf){
        this.uf = uf;
    }
    public String getUf(){
        return this.uf;
    }
}

Agora a chamada alternativa

Object o = buscaCep.getUf().toUpperCase();
Uf estado = new estado((String) o) ;//cria o objeto do tipo Uf com casting dentro do contrutor
cbbUf.getModel().setSelectedItem(estado.getUf());//estado.getUf() trará a string referente ao estado.

Pronto.

1 curtida

valeu @Rodrigo_Void deu certo, tinha pensado em fazer desta forma, mas achei que não daria certo. valeu.