Porque esta retornando ClassCastException?

7 respostas
S

Pessoal,

Estou com um problema de conversão de tipo em meu código, alguém saberia me dizer porque ?

digitalFuncionario = null;
		Object[] tmp = new Object[NUM_G];

		for (int x = 0; x < listaDigitais.size(); x++) {
			DigitalFuncionario digitalFuncionarioAtual = new DigitalFuncionario();
			digitalFuncionarioAtual = (DigitalFuncionario) listaDigitais.get(x);
			String matricula = String.valueOf(digitalFuncionarioAtual
					.getMatriculaFuncionario());
			byte[] feature = digitalFuncionarioAtual.getDescricaoDigital()
					.getBytes();
			FingerprintData fingerPrintData = new FingerprintData(matricula,
					feature);
			int G = fingerPrintData.getG();
			Object o = (Object) fingerPrintData;
			Vector v = (Vector) o;
			tmp[G] = v;
		}

Quando faço o Cast para Object ele retorna também nulo, podem me ajudar ?

7 Respostas

rmarin

está dando erro aqui né?

Vector v = (Vector) o;
foia

aulinha de poo (nossa, faz tempo):

  • “fingerPrintData” é um Object (ok)
  • “o” é um Object (ok)
  • “o” é um Vector (nok), portanto “(Vector) o” está errado.

resumo: todo Vector é um Object, MAAAS nem todo Object é um Vector.

sacou ?!

rmarin

O que você quis fazer, adicionar um FingerPrintData a um vetor?

Você quer uma lista de FingerPrintData?

se for isso faça:

Vector vector = new Vector();
vector.add(fingerPrintData);
S

Foia,

Eu estou iniciando em java e como tal é orientada a objeto da qual meus conhecimentos infelizmente são poucos, assim gostaria de saber como posso criar um vetor de fingerPrintData ? O que devo fazer ?

Rmain, respondendo a sua pergunta o Object (o) esta retornando null, mas o problema esta dando no comando abaixo, me parece que a resposta da Foia esta correta, so preciso saber como resolver.

rmarin

É muito simples, veja:

Vector vector = new Vector();

for (blaaaaaa) {
// aqui vc coloca o codigo do seu 'for', e então depois adiciona o fingerPrintData ao vetor
vector.add(fingerPrintData);

}

Abraço.

S

rmarin, legal, funcionou, muito obrigado a vocês (rmarin, foia)

foia

rmarin:
É muito simples, veja:

Vector vector = new Vector();

for (blaaaaaa) {
// aqui vc coloca o codigo do seu 'for', e então depois adiciona o fingerPrintData ao vetor
vector.add(fingerPrintData);

}

Abraço.

é isso ae !!

mais uma dica: utilize ArrayList ao invés de Vector. dizem por ae que é mais rápido e evita comentários maldosos de outros programadores. :mrgreen: :mrgreen:

Criado 28 de julho de 2005
Ultima resposta 28 de jul. de 2005
Respostas 7
Participantes 3