Porque esta retornando ClassCastException?

Pessoal,

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

[code] 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;
	}[/code]

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

está dando erro aqui né?

Vector v = (Vector) o;

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 ?!

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);

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.

É 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.

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

[quote=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.[/quote]

é 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: