[Resolvido]Java Erro

6 respostas
back-endprogramaçãojavascriptjava
F

Pessoal boa tarde estou querendo gerar um planinha de dados de um abnco de dados em excel mas ao executar o arquivo aparece um erro java.lang.ClassCastException: java.lang.String cannot be cast to Classes.Clientes1

Vou mostar meu codigo pra vocês

public void expExcel(String nomeArquivo) {

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet firstSheet = workbook.createSheet(“planilha.xlsx”);

FileOutputStream fos = null;

try {
fos = new FileOutputStream(new File(“planilha.xlsx”));

// Este trecho obtem uma lista de objetos do tipo CD

// do banco de dados através de um DAO e itera sobre a lista

// criando linhas e colunas em um arquivo Excel com o conteúdo

// dos objetos.

ClientesDAO dao = new ClientesDAO();
List lista = dao.mostrarClientes();

int i = 0;

for (Clientes1 cli : lista) {//Erro apresentado nessa linha java.lang.ClassCastException: java.lang.String cannot be cast to Classes.Clientes1

HSSFRow row = firstSheet.createRow(i);

row.createCell(0).setCellValue(cli.getCli_codigo());

row.createCell(1).setCellValue(cli.getCli_nome());

row.createCell(2).setCellValue(cli.getCli_email());

row.createCell(3).setCellValue(cli.getCli_datanasc());

row.createCell(4).setCellValue(cli.getCli_cep());

row.createCell(5).setCellValue(cli.getCli_rua());

row.createCell(6).setCellValue(cli.getCli_bairro());

row.createCell(7).setCellValue(cli.getCli_estado());

row.createCell(8).setCellValue(cli.getCli_cpf());

row.createCell(9).setCellValue(cli.getCli_rg());

row.createCell(10).setCellValue(cli.getCli_telefone());

row.createCell(11).setCellValue(cli.getCli_celular());

row.createCell(12).setCellValue(cli.getCli_datacad());

row.createCell(13).setCellValue(cli.getCli_numero());

row.createCell(14).setCellValue(cli.getCli_uf());

i++;

} // fim do for

workbook.write(fos);

} catch (Exception e) {

e.printStackTrace();

System.out.println(Erro ao exportar arquivo);

} finally {

try {

fos.flush();

fos.close();

} catch (Exception e) {

e.printStackTrace();

}

}

} // fim do metodo exp

}

6 Respostas

H

Vê o tipo de retorno do seu método: dao.mostrarClientes()… e outra, eu normalmente quando crio uma lista eu especifico o tipo dela, n boto apenas List.

A declaração da variável ficaria assim:

List< Clientes1> lista = new ArrayList();

F

hugo boa tarde meu metodo mostraClientes esta assim

public List<Clientes1> mostrarClientes(){

try {

con = Conecta.conexao();

} catch (ClassNotFoundException ex) {

Logger.getLogger(ProdutoDAO.class.getName()).log(Level.SEVERE, null, ex);

}
try {
       String sql="Select * from tb_clientes2 ";
        Statement statement = con.createStatement();

ResultSet rs = statement.executeQuery(sql);
List lista = new ArrayList();

while(rs.next()){
            lista.add(rs.getInt("cli_id"));
            lista.add(rs.getString("cli_nome"));
            lista.add(rs.getString("cli_email"));
            lista.add(rs.getDate("cli_datanasc"));
            lista.add(rs.getString("cli_cep"));
            lista.add(rs.getString("cli_rua"));
            lista.add(rs.getString("cli_bairro"));
            lista.add(rs.getString("cli_estado"));
            lista.add(rs.getString("cli_cpf"));
            lista.add(rs.getString("cli_rg"));
            lista.add(rs.getString("cli_telefone"));
            lista.add(rs.getString("cli_celular"));
            lista.add(rs.getDate("cli_datacad"));
            lista.add(rs.getInt("cli_numero"));
            lista.add(rs.getString("cli_uf"));
           
       
        
        }
        
        return lista;
    } catch (Exception e) {
        JOptionPane.showConfirmDialog(null,e);
        return null;
    }

}
H

Seu método tem que retornar uma lista do tipo Cliente1

F

então como faço pra retorna uma lista com o valor de um objeto ?

H

Assim vai ficar o seu método.

public List<Clientes1> mostrarClientes(){

e a variável lá no expExcel(String nomeArquivo) vai ficar assim:

List<Cliente1> lista = new ArrayList<Cliente1>();
lista = dao.mostrarClientes();

Acho que é isso.

F

consegui hugo, tinha que pegar os dados do banco e setalos no objeto e depois arrumar o expExcel como vc falou vlw abraço

Criado 27 de fevereiro de 2017
Ultima resposta 27 de fev. de 2017
Respostas 6
Participantes 2