"Fatal Exception" y no se por qué.....

jecasas
13 de Noviembre del 2004
Hola a todos. Estoy empezando en Java y tengo un programa muy sencillo que me da una excepcion fatal y no se por que... os pongo el listado por si alguien me puede ayudar:

Por un lado tenemos:

package mypackage7;

public final class MainVector
{
public static void main(String[] args) throws Exception
{
MiVector prueba=new MiVector();
System.out.println(prueba);
System.out.println(prueba.getElement(3));
}
}

y por otro la clase MiVector definida por:

package mypackage7;
import java.util.*;
import java.io.*;

public final class MiVector
{
private Vector VectorEdu=new Vector();
public MiVector() // Constructor
{
int contador=1;
while(contador<10)
{
Random numero1=new Random(10);
VectorEdu.addElement(numero1);
contador++;
}
}
public String getElement(int pos)
{
int i=pos;
String cadena=(String) VectorEdu.get(i);
return cadena;
}
}

Al compilar no hay ningún problema, y al ejecutar me devuelve:

C:JAVAjdkbinjavaw.exe -ojvm -classpath C:JAVAjdevmyworkEduEdusitoclasses mypackage7.MainVector
Exception in thread main
java.lang.ClassCastException: java.util.Random

at mypackage7.MiVector.getElement(MiVector.java:22)
at mypackage7.MainVector.main(MainVector.java:7)

[email protected]

Process exited with exit code 1.

La línea 22 que menciona es "return cadena;" y la 7 es "MiVector prueba=new MiVector();"

Alguna idea de que pasa??
Muchas gracias.

melmoth
13 de Noviembre del 2004
Tienes un problema de conversion de tipos. En el vector 'VectorEdu' estás almacenando objetos de tipo Ramdom y luego intentas recuperar objetos de tipo String. Puedes hacer 2 cosas

1. Recupera objetos Random

Random r =(Random) VectorEdu.get(i);

2. Haz la conversión con toString

String cadena=((Random) VectorEdu.get(i)).toString();