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

Error de NullPointerException

Estas en el tema de Error de NullPointerException en el foro de Java en Foros del Web. Holas! Hace unos dias puse una pregunta sobre un programa que estaba realizando y que no me salía la interficie gráfica pues bien dicho programa ...
  #1 (permalink)  
Antiguo 28/08/2008, 15:41
Avatar de Emel  
Fecha de Ingreso: agosto-2008
Mensajes: 12
Antigüedad: 15 años, 8 meses
Puntos: 0
Error de NullPointerException

Holas! Hace unos dias puse una pregunta sobre un programa que estaba realizando y que no me salía la interficie gráfica pues bien dicho programa se basa en listas y nodos que poseen estas, tengo que hacer 2 implementaciones una con array y otra con punteros. La de punteros la tengo finiquitada pero la de arrays me está trayendo mil y un disgustos.

La interficie va genial pero el codigo base para trabajar con las listas de arrays me da errores. Concretamente un NullPointerException que nose como abarcar.

Paquete que crea la lista de referencias de clientes, el campo "cliente" es un puntero hacia un nodo del tipo "NodoListaClientes" que dentro tiene "nombre_cliente", "info_cliente" y una "lista de propiedades".


Código:
package arrays;

class NodoListaRefCliente{

	NodoListaClientes cliente;

	NodoListaRefCliente(NodoListaClientes cli){
		cliente=cli;
	}

        
}

class ListaRefClientes{
    
    NodoListaRefCliente[] refclientes = new NodoListaRefCliente[100];
     int PrimerNodo;
     int UltimoNodo;
    
    public int Fin_L_Ref_Clientes(){ 
        
        if (UltimoNodo==100){
        return UltimoNodo;
        }
        else{
            return UltimoNodo+1;

        }
        
    }

    public void Insertar_Ref_Cliente(NodoListaClientes cli, int Posicion){
        if (cli!=null){
     if (UltimoNodo==100){
         System.out.println("La lista está llena.");
     }
     else{
         if ((Posicion<=UltimoNodo)&(Posicion!=0)){
             NodoListaRefCliente aux,aux2;
             aux=refclientes[Posicion];
             NodoListaRefCliente nod=new NodoListaRefCliente(cli);
             refclientes[Posicion]=nod;
             for (int i=Posicion+1;i<=UltimoNodo+1;i++){
                 aux2=refclientes[i];
                 refclientes[i]=aux;
                 aux=aux2;
             }
             UltimoNodo++;  
         }
         else{
             if (Posicion!=0){
             if (Posicion<=100){
             System.out.println("La posición no existe, se insertará al final de la lista"); 
             if (UltimoNodo==0){
                 PrimerNodo=1;
             } 
             UltimoNodo++;
             NodoListaRefCliente aux=new NodoListaRefCliente(cli);
             refclientes[Posicion]=aux;
             }
             }
             else{
                 System.out.println("Error, la posición no existe.");
             }
         }
     }
        }
    }
}
Ahora el cacho que intento ejecutar: (Me compila genial pero me falla en la ejecución)

Código:
    public static void main(String[] args) throws Exception{

        ListaLocalidades LL  = new ListaLocalidades();
        ListaRefClientes LRC = new ListaRefClientes();
        Clientes LC = new Clientes();
        
        LL.Crear_L_Localidades();
        LRC.Crear_L_Ref_Clientes();
        LC.Crear_L_Clientes();
        
        LL.Insertar_Localidad("Palma", LL.Fin_L_Localidades());
        
        LRC=LL.R1(LL.Localiza_Localidad("Palma"));
        LC.Insertar_Cliente("Emilio","loquesea",LC.Fin_L_Clientes());
        int poscli=LC.Localiza_Cliente("Emilio");

        LRC.Insertar_Ref_Cliente(LC.clientes[poscli],LRC.Fin_L_Ref_Clientes());
        
        }
Notas:

· Los métodos crear solo ponen "PrimerNodo" y "UltimoNodo" igual a 0.

· R1 devuelve una lista de localidades pasandole un int que sea la posicion en la lista de localidades.

· Localiza_Cliente devuelve la posicion de un cliente con el nombre que se le indique, en este caso "Emilio".

Me da error de NullPointerException justamente en la siguiente linea:

LRC.Insertar_Ref_Cliente(LC.clientes[poscli],LRC.Fin_L_Ref_Clientes());

Pero por lo que se ese error me lo debe de dar porque "LC.clientes[poscli]" debe retornar algo "null", ¿no? Porque lo otro, el "LRC.Fin_L_Ref_Clientes()" devuelve tipo int y no tiene mucho sentido.

En cualquier caso, me estoy volviendo loco porque pensaba que tenía el programa viento en popa y me ha salido esto que no esperaba.

Mil gracias al que me ayude
  #2 (permalink)  
Antiguo 28/08/2008, 16:03
Avatar de Emel  
Fecha de Ingreso: agosto-2008
Mensajes: 12
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error de NullPointerException

vale! soy medio gilipollas... insertaba la localidad y luego le pedía que me pasase su lista de clientes pero esk no le habia asociado ninguna lista.

de todas formas, me reservo este topic para otra preguntita que tengo en el tintero


perdon!!!!
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 13:38.