Foros del Web » Programación para mayores de 30 ;) » Java »

conversion de tipos de datos

Estas en el tema de conversion de tipos de datos en el foro de Java en Foros del Web. Hola,,, que tal .. tengo un problema al almacenar mis datos en una clase y despues guardar esta clase en un vector.. tengo mi clase ...
  #1 (permalink)  
Antiguo 26/10/2004, 10:14
 
Fecha de Ingreso: septiembre-2004
Mensajes: 17
Antigüedad: 19 años, 7 meses
Puntos: 0
conversion de tipos de datos

Hola,,, que tal ..

tengo un problema al almacenar mis datos en una clase y despues guardar esta clase en un vector..

tengo mi clase (guardarpreguntas) en la cual estan los metodos Set y Get, tengo 5 datos Integer y 6 String, 11 en total, cada uno con sus metodos Set y Get.
ejem.

/* Variables para almacenar los MetaDatos del ResulSet */
String id_pregunta1, no_ctrl1, edad1, c_p1, estatura1,no_telefono1,
direccion1, ciudad1, deporte_favorito1,CURP1;

/* Variables para almacenar los datos del ResulSet*/
Integer id_pregunta, no_ctrl, edad, c_p, estatura;
String no_telefono, direccion, ciudad, deporte_favorito,CURP;


/* Metodos para almacenar los Metadatos del ResulSet */
public void setEdad1(String edad1){
this.edad1 = edad1;
}
public void setC_p1(String c_p1){
this.c_p1 = c_p1;
}
.......
.......
public void setNo_telefono1(String no_telefono1){
this.no_telefono1=no_telefono1;
}
.......
.......
/* Metodos para obtener los Metadatos del ResulSet*/

public String getEdad1(){
return edad1;
}
public String getC_p1(){
return c_p1;
}
........
........
public String getNo_telefono1(){
return no_telefono1;
}
..........
.........

/* Metodos para almacenar los datos del ResulSet */

public void setEdad(Integer edad){
this.edad = edad;
}
public void setC_p(Integer c_p){
this.c_p = c_p;
}
......
......
......
public void setNo_telefono(String no_telefono){
this.no_telefono=no_telefono;
}
......
......

/* Metodos para obtener los datos del ResulSet*/

public Integer getEdad(){
return edad;
}
public Integer getC_p(){
return c_p;
}
......
......
public String getNo_telefono(){
return no_telefono;
}
.......
.......

Ahora al querer almacenar mis datos en esta clase, lo hago de la siguiente manera desde un servlet al cual los Metadatos los tomo de una consulta hecha ala Base de Datos, y los Datos son los que Introduciran los usuarios. lo hago de las iguiente manera :


public Vector AlmacenaMetaDatosRespuetas(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String control2= request.getParameter("control");
response.setContentType("text/vnd.wap.wml");
PrintWriter out = response.getWriter();
Vector preguntastem = new Vector();
try{
conn= conectar.getConnection();
conn.setAutoCommit(true);
Statement stmt = conn.createStatement();
ResultSet res=stmt.executeQuery("SELECT * FROM preguntas where no_ctrl=\'"+control2+"\'");
ResultSetMetaData metaDatos = res.getMetaData();
int alea[] = new Numero().getAleatorios(4,11);
guardapreguntas preasig=new guardapreguntas();

out.println("<wml>");
out.println("<card id=\"card26\">");
out.println("<p>");
out.println("Contesta las preguntas");

for (int i=0; i < alea.length; i++)
{
switch(alea[i])
{
case 3:
try{
out.println("<small>");
out.println(metaDatos.getColumnName(3)+ ":");
preasig.setEdad1(metaDatos.getColumnName(3));
out.println("</small>");
out.println("<input type=\"texto\" format=\"*N\" name=\"edad\" maxlength=\"2\"/>");
String edad = request.getParameter("edad");
int edad1 = Integer.parseInt(edad);
Integer edad2 = new Integer(edad1);
preasig.setEdad(edad2);
}catch(NumberFormatException e)
{
System.out.println("el de la 3" + e);
}

break;
case 4:
try{
out.println("<small>");
out.println(metaDatos.getColumnName(4)+ ":");
preasig.setNo_telefono1(metaDatos.getColumnName(4) );
out.println("</small>");
out.println("<input type=\"texto\" format=\"*M\" name=\"no_telefono\" maxlength=\"10\"/>");
String no_telefono= request.getParameter("no_telefono");
preasig.setNo_telefono(no_telefono);
}catch(NumberFormatException e)
{
System.out.println("el de la 4" + e);
}
break;

}
preguntastem.addElement(preasig);
out.println("</p>");
out.println("</card>");
out.println("</wml>");
}catch (Exception e)
{
out.println("<wml>");
out.println("<card id=\"card27\">");
out.println("<p>");
out.println("<br>error ==> "+e);
out.println("</br>");
out.println("</p>");
out.println("</card>");
out.println("</wml>");
}
out.flush();
return preguntastem;
}


Al hacer la conversion del tipo de fdatos que recibo, ¿es correcto como lo hago? por que al correr el programa me genera un error de Exception en Java.lang:null

y al querer recuperar los datos del vector no se almacenan lo introducidos por los usuarios..

espero y me contesten..


espero tu respuesta Javiruchis...
  #2 (permalink)  
Antiguo 27/10/2004, 12:29
 
Fecha de Ingreso: enero-2003
Mensajes: 52
Antigüedad: 21 años, 3 meses
Puntos: 0
Podrias mandar el stack trace de la excepcion para ver la linea exacta donde marca el NullPointer?
  #3 (permalink)  
Antiguo 28/10/2004, 07:59
 
Fecha de Ingreso: septiembre-2004
Mensajes: 17
Antigüedad: 19 años, 7 meses
Puntos: 0
Aqui es donde me genera el eror..

case 3:
try{
out.println("<small>");
out.println(metaDatos.getColumnName(3)+ ":");
preasig.setEdad1(metaDatos.getColumnName(3));
out.println("</small>");
out.println("<input type=\"texto\" format=\"*N\" name=\"edad\" maxlength=\"2\"/>");
String edad = request.getParameter("edad");
int edad1 = Integer.parseInt(edad);
Integer edad2 = new Integer(edad1);
preasig.setEdad(edad2);
}catch(NumberFormatException e)
{
System.out.println("el de la 3" + e);
}
break;

Aqui es donde genera el error: java.lang.NumberFormatException:null


Al parecer es cuando trato de convertir un string a un int, y posteriormente ese int lo convierto a Integer, ( esto lo hago por que el resultado que obtengo de lo que el usuario introduce son numeros pero al leerlos en java solo los puedo leer como cadena, String edad = request.getParameter("edad"); . asi que tengo que hacer la conversion para que en mi clase guardarpreguntas se almacene como Integer..ya que tengo establecido el set y get como Integer,..

no se porque, genere este error. al parece estoy haciendo bien las conversiones, pero talvez me haga falta alguo mas..

podrian decirme porfavor?...
  #4 (permalink)  
Antiguo 28/10/2004, 08:20
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 11 meses
Puntos: 2
No hace falta que previamente lo pases a int.

String edad = request.getParameter("edad");
preasig.setEdad(new Integer(edad));
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #5 (permalink)  
Antiguo 28/10/2004, 13:30
 
Fecha de Ingreso: julio-2004
Mensajes: 26
Antigüedad: 19 años, 9 meses
Puntos: 0
tambien puedes revisar que este llegando el valor de edad, request.getParameter("edad")
puede ser que te marque NULL por que no tiene ningun valor

saludos
  #6 (permalink)  
Antiguo 30/10/2004, 16:30
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
Coincido con Josefo, piesno que no esta llegando el campo edad, y que este biene null, por eso la excecion.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #7 (permalink)  
Antiguo 01/11/2004, 16:42
 
Fecha de Ingreso: septiembre-2004
Mensajes: 17
Antigüedad: 19 años, 7 meses
Puntos: 0
graciotas

Hola que tal, muchas gracias, por ayudarme en mi problema.. efectivamente el campo edad hiba vacio y por consiguiente se generaba el error...


saludos...
  #8 (permalink)  
Antiguo 13/01/2005, 10:20
 
Fecha de Ingreso: enero-2005
Mensajes: 2
Antigüedad: 19 años, 3 meses
Puntos: 0
Pequeño tutorial

Mirate esto, tienen todos los tipos de conversiones de datos en java:

http://www.gnupeople.com/modules.php...tegories&cid=4
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:22.