JavaScript - NullPointerException

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 38 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

NullPointerException

Publicado por Julian (1 intervención) el 18/02/2021 05:18:02
Buenas noches, estoy haciendo un ejercicio en el cual tengo crear un menu de gestion para una empresa aeroportuaria. Creando el switch para el menu, quise ejecutar despues de armar la primer opcion y me encuentro con este error

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "Proyecto.Compañia.getNombre()" because "this.listaCompañias[i]" is null
at Proyecto.Aeropuerto.getCompañia(Aeropuerto.java:60)
at Proyecto.Principal.insertarDatosAeropuerto(Principal.java:34)
at Proyecto.Principal.main(Principal.java:13)
D:\Eclipse Workspace\AplicacionAeroportuaria\nbproject\build-impl.xml:1330: The following error occurred while executing this line:
D:\Eclipse Workspace\AplicacionAeroportuaria\nbproject\build-impl.xml:936: Java returned: 1
BUILD FAILED (total time: 0 seconds)

NetBeans no me marca ningun error hasta que intento ejecutarlo y yo despues de leer y releer el codigo tampoco puedo encontrarlo.

Les dejo el codigo de la clase Aeropuerto y la clase Principal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
public class Aeropuerto {
    private String nombre;
    private String ciudad;
    private String pais;
    private Compañia listaCompañias[] = new Compañia[10];
    private int numCompañia;
 
    public Aeropuerto(String nombre, String ciudad, String pais) {
        this.nombre = nombre;
        this.ciudad = ciudad;
        this.pais = pais;
        this.numCompañia = 0;
    }
 
    public Aeropuerto(String nombre, String ciudad, String pais,Compañia compa[]) {
        this.nombre = nombre;
        this.ciudad = ciudad;
        this.pais = pais;
        this.listaCompañias = compa;
        this.numCompañia = 0;
    }
 
    public void insertarCompañia(Compañia compañia){
        listaCompañias[numCompañia] = compañia;
        numCompañia++;
    }
 
    public String getNombre() {
        return nombre;
    }
 
    public String getCiudad() {
        return ciudad;
    }
 
    public String getPais() {
        return pais;
    }
 
    public Compañia[] getListaCompañias() {
        return listaCompañias;
    }
 
    public int getNumCompañia() {
        return numCompañia;
    }
 
    public Compañia getCompañia(int i){
        return listaCompañias[i];
    }
 
    public Compañia getCompañia(String nombre){
        boolean encontrado = false;
        int i=0;
        Compañia com = null;
        while((!encontrado)&&(i<listaCompañias.length)){
            if(nombre.equals(listaCompañias[i].getNombre())){
                encontrado = true;
                com = listaCompañias[i];
            }
            i++;
        }
        return com;
    }
 
}


---------------------------------------------------------------


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import java.util.Scanner;
 
 
public class Principal {
    Scanner entrada = new Scanner(System.in);
    final static int num = 4;//Numero de Aeropuertos
    static Aeropuerto aeropuertos[] = new Aeropuerto[num];
 
    public static void main(String[] args){
        insertarDatosAeropuerto(aeropuertos);
        menu();
 
    }
 
    public static void insertarDatosAeropuerto(Aeropuerto aero[]){
        aero[0] = new AeropuertoPublico(80000000, "Jorge Chavez", "Lima", "Peru");
        aero[0].insertarCompañia(new Compañia("AeroPeru"));
        aero[0].insertarCompañia(new Compañia("LATAM"));
        aero[0].getCompañia("AeroPeru").insertarVuelo(new Vuelo("IB20", "Lima", "Mexico",150.90,150));
        aero[0].getCompañia("AeroPeru").insertarVuelo(new Vuelo("IB21", "Lima", "Buenos Aires", 180.99, 120));
        aero[0].getCompañia("LATAM").insertarVuelo(new Vuelo("FC12", "Lima", "Londres",500.90, 180));
        aero[0].getCompañia("AeroPeru").getVuelo("IB20").insertarPasajero(new Pasajero("Julian", "37878397", "Argentino"));
        aero[0].getCompañia("AeroPeru").getVuelo("IB20").insertarPasajero(new Pasajero("Sergio", "14446681", "Argentino"));
        aero[0].getCompañia("LATAM").getVuelo("FC12").insertarPasajero(new Pasajero("Ines", "14123159", "Argentina"));
 
        aero[1] = new AeropuertoPrivado("Central Ciudad Real","Ciudad Real","España");
        aero[1].insertarCompañia(new Compañia("AirEuropa"));
        String empresas[] = {"Cobreso1","Anguila34"};
        ((AeropuertoPrivado)aero[1]).insertarEmpresas(empresas);
        aero[1].getCompañia("AirEuropa").insertarVuelo(new Vuelo("AE025","Madrid","Buenos Aires",420.50,150));
        aero[1].getCompañia("AirEurope").getVuelo("AE025").insertarPasajero(new Pasajero("Lucas","40125125","Argentino"));
 
        aero[2] = new AeropuertoPublico(200000000,"Aeropuerto Bogota","Bogota","Colombia");
        aero[2].insertarCompañia(new Compañia("AirAmerica"));
        aero[2].insertarCompañia(new Compañia("VuelaBogota"));
        aero[2].getCompañia("AirAmerica").insertarVuelo(new Vuelo("AE030","Bogota","Lima",220.80,120));
        aero[2].getCompañia("AirAmerica").insertarVuelo(new Vuelo("AE031","Bogota","Lima",220.80,120));
        aero[2].getCompañia("AirAmerica").getVuelo("AE030").insertarPasajero(new Pasajero("Micaela","38456258","Argentina"));
        aero[2].getCompañia("AirAmerica").getVuelo("AE030").insertarPasajero(new Pasajero("Aylen","37456123","Argentina"));
 
        aero[3] = new AeropuertoPublico(40000000,"Aeropuerto Mexico","Mexico","Mexico");
        aero[3].insertarCompañia(new Compañia("AirAmerica"));
        aero[3].insertarCompañia(new Compañia("VuelaBogota"));
        aero[3].getCompañia("VuelaBogota").insertarVuelo(new Vuelo("VA040","Mexico","Nueva Zelanda",700.30,180));
        aero[3].getCompañia("VuelaBogota").insertarVuelo(new Vuelo("VA041","Mexico","Buenos Aires",280.70,120));
        aero[3].getCompañia("VuelaBogota").getVuelo("VA041").insertarPasajero(new Pasajero("Alicia","4563214","Argentina"));
 
    }
 
    public static void menu(){
        int opcion;
        Scanner entrada = new Scanner(System.in);
        do{
            System.out.println("\n.:MENU:.");
            System.out.println("1. Ver Aeropuertos gestionados(Publicos o Privados)");
            System.out.println("2. Ver empresas(Privado) o subvencion(Publico)");
            System.out.println("3. Lista de compañias de un aeropuerto");
            System.out.println("4. Lista de vuelos por compañia");
            System.out.println("5. Listar posibles vuelos de Origen a Destino");
            System.out.println("6. Salir");
            System.out.print("Opcion:");
            opcion = entrada.nextInt();
 
            switch(opcion){
                case 1: System.out.println("");
                        mostrarDatosAeropuertos(aeropuertos);
                        break;
                case 2:
                        break;
                case 3:
                        break;
                case 4:
                        break;
                case 5:
                        break;
                case 6: break;
                default: System.out.println("Opcion incorrecta, intente de nuevo");
            }
            System.out.println("");
        }while(opcion!=6);
    }
 
    public static void mostrarDatosAeropuertos(Aeropuerto aeropuertos[]){
        for(int i=0;i<aeropuertos.length;i++){
            if(aeropuertos[i] instanceof AeropuertoPrivado){
                System.out.println("Aeropuerto Privado");
                System.out.println("Nombre: "+aeropuertos[i].getNombre());
                System.out.println("Ciudad: "+aeropuertos[i].getCiudad());
                System.out.println("Pais: "+aeropuertos[i].getPais());
            }else{
                System.out.println("Aeropuerto Publico");
                System.out.println("Nombre: "+aeropuertos[i].getNombre());
                System.out.println("Ciudad: "+aeropuertos[i].getCiudad());
                System.out.println("Pais: "+aeropuertos[i].getPais());
            }
            System.out.println("");
        }
    }
}




Desde ya gracias a quien se haya tomado el tiempo de leer todo esto

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder