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

NullPointerException, QUE ES ESTO???

Estas en el tema de NullPointerException, QUE ES ESTO??? en el foro de Java en Foros del Web. HOLA!!! ESTOY ESTUDIANDO PROGRAMACION, ME PUSIERON UN PROBLEMA A RESOLVER, EN ESO ESTOY, PERO ME SALE UN PROBLEMA QUE NO ENTIENDO. POR FAVOR PODRIAN AYUDARME. ...
  #1 (permalink)  
Antiguo 12/10/2009, 19:26
Avatar de Philip7  
Fecha de Ingreso: septiembre-2008
Mensajes: 56
Antigüedad: 15 años, 8 meses
Puntos: 1
NullPointerException, QUE ES ESTO???

HOLA!!!

ESTOY ESTUDIANDO PROGRAMACION, ME PUSIERON UN PROBLEMA A RESOLVER, EN ESO ESTOY, PERO ME SALE UN PROBLEMA QUE NO ENTIENDO.
POR FAVOR PODRIAN AYUDARME.

TENGO MARCADO CON UNA FLECHA EN DONDE ME SALEN LOS ERRORES....

Código PHP:
public void proceso1(control vector[])
        {
            
            
int prog1=0,fis1=0,qui1=0;
            
String val;
            for(
int f=0;f<vector.length;f++)
            {
                for(
int f2=0;f2<5;f2++)
                {
                    
val=vector[f].materias[f2]; <---------
                    if(
val.length()==12 || val.length()==32)
                        ++
prog1;
                    else if(
val.length()==6)
                        ++
fis1;
                    else if(
val.length()==7)
                        ++
qui1;
                }
            }
            
System.out.println("La cantidad de alumnos que llevan la materia de Programación son: "+prog1);
            
System.out.println("La cantidad de alumnos que llevan la materia de Fisica son: "+fis1);
            
System.out.println("La cantidad de alumnos que llevan la materia de Quimica son: "+qui1);
        }

public static 
void main (String[] args)
        {
            
Teclado v = new Teclado();
            
control obj = new control();
            
System.out.println("Escribe cuantos alumnos vas a capturar");
            final 
int LONGITUD_ARRELO v.leeInt();
            
control alumnos [] = new control[LONGITUD_ARRELO];
            
control datos[] = new control[LONGITUD_ARRELO];
            
obj.proceso(alumnosdatos);
            
obj.imprime(datos,alumnos);
            
obj.proceso(alumnos);
            
obj.proceso1(alumnos); <-----------
        } 
Y ESTO ES LO QUE SALE, CUANDO LLAMO AL METODO PROCESO1:

Exception in thread "main" java.lang.NullPointerException
at control.proceso1(control.java:140)
at control.main(control.java:164)

ESPERO SU AYUDA GRACIAS!!!
  #2 (permalink)  
Antiguo 12/10/2009, 21:22
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: NullPointerException, QUE ES ESTO???

el error mas común para cuando intentás acceder a un objetos no inicializados, o cuando intentás acceder a una posición de un vector/array.
Aparte los vectores ya pasaron de moda.. hace muuuuuuuuuuucho.. probá con Collection, List, Set.
  #3 (permalink)  
Antiguo 12/10/2009, 23:29
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: NullPointerException, QUE ES ESTO???

Así es, como te dice el señor FiruzzZ, esta excepción es lanzada cuando se intenta acceder a una posición no inicializada del vector pero también se puede aplicar a cualquier variable, objeto, etcétera. Puede ser lanzada porque no ha sido inicializado o porque lo has igualado a null. Deberás revisar las asignación a tu vector control en las líneas que te marca el compilador (140 y 164 de los métodos proceso y main respectivamente) porque generalmente ahí está la respuesta

Haz pruebas; cambia valores, asigna algunos de prueba hasta que encuentres el error. Puedes seguir utilizando vector, todo depende para qué fin lo requieras. Si necesitas grandes almacenamientos de datos conviene usar una colección más amplia con mayores posibilidades de uso. Primero intenta resolver tu error y luego podrás investigar sobre otras colecciones, ese es mi consejo.

Suerte
  #4 (permalink)  
Antiguo 13/10/2009, 01:41
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: NullPointerException, QUE ES ESTO???

Exacto, en la linea del programa que te marca seguramente estés llamando a un objeto cuyo valor sea null. La mejor forma de ver lo que pasa es haciendo debug, no sé que programa usas para compilar, pero seguro que tiene una herramienta para ejecutar en modo debug y ver los valores que toma cada variable en cada momento, o realizar ejecución paso a paso.
  #5 (permalink)  
Antiguo 13/10/2009, 14:55
Avatar de Philip7  
Fecha de Ingreso: septiembre-2008
Mensajes: 56
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: NullPointerException, QUE ES ESTO???

Ok, muchas gracias a todos, tenian mucha razón, ya encontre el problema, ciertamente mandaba null, porque simplemente era una tontera mia que me equivoque de arreglo de objetos, en lugar de "alumnos" era mandar "datos", ya que ahí se encuentra las materias en las que voy a trabajar.

Muchas gracias!!!
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 04:03.