0

no consigo saber por que me da este erro, estoy intentando añadir un "trabajador" a la lista de una clase"Empresa" mediante otro objeto "empActual", pero me aparece que esta null y no se porque, el erro me lo da "empActual.getTrabajadores().add(trabajador);" esta linea. Ayuda por favor.

    public static void agregarTrabajador(){
    if(0 == empresas.size()){
        System.out.println("\u001B[31mNo se ha registrado ninguna Empresa.\u001B[0m");
    }else{
        System.out.println("");
        System.out.println("--- Seleccione una Empresa. ---");
        for (int i = 0; i < empresas.size(); i++) {
            System.out.println(i + " " + empresas.get(i));
        }
            int indice = Validacion.obtenerNumero("la empresa");
           /* try {*/

                Empresa empActual = empresas.get(indice);
                Trabajador trabajador = new Trabajador();

                trabajador.setNombre(Validacion.obtenerRespuesta("nombre"));
                trabajador.setApellidoPaterno(Validacion.obtenerRespuesta("apellido paterno"));
                trabajador.setApellidoMaterno(Validacion.obtenerRespuesta("apellido materno"));
                trabajador.setRun(Validacion.obtenerRespuesta("run"));
                trabajador.setEdad(Validacion.obtenerNumero("edad"));
                trabajador.setSexo(Validacion.obtenerRespuesta("sexo"));
                trabajador.setTelefono(Validacion.obtenerRespuesta("telefono"));
                trabajador.setDireccion(Validacion.obtenerRespuesta("direccion"));
                empActual.getTrabajadores().add(trabajador);
                Cargo cargo = new Cargo();
                System.out.println("--------------------------------");
                System.out.println("¿Que cargo realizara?");
                System.out.println("");
                cargo.setIdCargo(Validacion.obtenerNumero("id del cargo"));
                cargo.setNombre(Validacion.obtenerRespuesta("nombre del cargo"));
                cargo.setDescripccion(Validacion.obtenerRespuesta("descripciion del cargo"));
                trabajador.setCargo(cargo);

            /*} catch (Exception e) {
                System.out.println("indice incorrecto");
            }*/

    }    
}
  • no, son dos casos diferentes – Diego Alvarez Montaño Nov 19 '18 at 06:37
  • Por qué crees que sean diferentes? @Diego Alvarez Montaño –  Nov 19 '18 at 06:40
  • no resuelve mi duda, son programas diferentes con diferentes fines – Diego Alvarez Montaño Nov 19 '18 at 06:42
  • 1
    Creo estás confundido, obvio son problemas distintos pero la solución es la misma; tómate el tiempo de leerlo y comprenderlo –  Nov 19 '18 at 06:43
  • se supone que este es un foro en donde puedo pedir ayuda, yo estoy recién conociendo java, y encuentro que el otro post es muy avanzado para mi, no lo logro entender, si la solución es la misma, me las podrias explicar por favor? @shadow – Diego Alvarez Montaño Nov 19 '18 at 06:45
  • varias cosas pueden ser, puede que empresas.getIndice(...) te este arrojando null, otra que empresas.getTrabajadores debe ser un array de trabajadores el cual no esta instanciado mediante new y por ende arroja null, ahi veo un try catch comentado, por ahi era su funcion el detectar la nullidad de alguna instancia. – Franco Rolando Nov 19 '18 at 07:26
  • ya lo vi, era la segunda opción que dijiste, no estaba instanciada, muchas gracias. – Diego Alvarez Montaño Nov 19 '18 at 07:38

0 Answers0