Problemas com classcastexception

1 resposta
S

Pessoal, estou com um problema de cast nos programa java, alguém pode me ajudar o porque esta ocorrendo ? tenho 2 classes que:

Class DigitalFuncionarioDAO tem o objetivo de criar uma lista (arraylist) e ler uma tabela e colocando nesta lista e retornando.

// consulta digital de todos os funcionários
	public List selecionaTodasDigitais(DigitalFuncionario digitalFuncionario) throws SQLException, ClassNotFoundException , ErroPadraoException {
		List listaDigital = new ArrayList();
		try {
			conexao = CriaConexao.abreConexao();			
 			stmt = this.conexao.prepareStatement(SQL_SELECT_DIGITAL); 			
 			rs = stmt.executeQuery();
 			
 			if (rs.next()) {
 				digitalFuncionario.setIdentificadorDigital(rs.getInt("id_digital_seq"));
 				digitalFuncionario.setMatriculaFuncionario(rs.getInt("cd_matricula"));
 				digitalFuncionario.setQtByteDigital(rs.getInt("qt_byte_digital"));
 				digitalFuncionario.setDescricaoDigital(rs.getString("ds_digital"));  				 
 				
 				digitalFuncionario.setNomeAlteracaoRegistro(rs.getString("nm_alt"));
 				digitalFuncionario.setNomeInclusaoRegistro(rs.getString("nm_inc"));
 				digitalFuncionario.setDataAlteracao(rs.getString("dt_alt")); 			
 				digitalFuncionario.setDataInclusao(rs.getString("dt_inc"));  
 				listaDigital.add(digitalFuncionario); 				
 			} 	
 		
		} catch (ClassNotFoundException e) {
 			e.printStackTrace(); 			
 		} catch (SQLException e) {
 			e.printStackTrace(); 			
 		}
		stmt.close(); 	
 		return listaDigital;
	}

A outra class le esta informações e obtem um erro de classcast no Vector, porque esta ocorrendo isto ?

public void load() {	
		DigitalFuncionario digitalFuncionario = new DigitalFuncionario();
		DigitalFuncionarioDAO digitalFuncionarioDAO = new DigitalFuncionarioDAO();
		List listaDigitais = new ArrayList();
		try {
			listaDigitais = digitalFuncionarioDAO.selecionaTodasDigitais(digitalFuncionario);
		} catch (SQLException e1) {
			e1.printStackTrace();
		} catch (ClassNotFoundException e1) {
			e1.printStackTrace();
		} catch (ErroPadraoException e1) {
			e1.printStackTrace();
		}
		
		Object[] tmp = new Object[NUM_G];
		try {
			for (int i = 0; i < listaDigitais.size(); ++i) {
				Object o = listaDigitais.get(i);
				if (o != null) {
					Vector v = (Vector) o;
					tmp[i] = v;
				}
			}			 
			removeAll();
			data = tmp;
		}
		catch (Exception e) {
			System.out.println("Error loading database - " + e.getMessage());
			e.printStackTrace();
		}
	}

1 Resposta

rodrigo_gomes

Olá,

Você criou um ArrayList de DigitalFuncionario, e na outra classe está tentando fazer cast de DigitalFuncionario para Vector :shock:

if (o != null) { Vector v = (Vector) o; tmp[i] = v; }
faça

if (o != null) { DigitalFuncionario v = (DigitalFuncionario) o; tmp[i] = v; }

Criado 27 de julho de 2005
Ultima resposta 27 de jul. de 2005
Respostas 1
Participantes 2