"Fatal Exception" y no se por qué.....
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)
mypackage7.MiVector@3
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.
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)
mypackage7.MiVector@3
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.
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();
1. Recupera objetos Random
Random r =(Random) VectorEdu.get(i);
2. Haz la conversión con toString
String cadena=((Random) VectorEdu.get(i)).toString();
