elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  java crear sesion cine nullpointerexception
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: java crear sesion cine nullpointerexception  (Leído 1,899 veces)
silk_25

Desconectado Desconectado

Mensajes: 9


Ver Perfil
java crear sesion cine nullpointerexception
« en: 13 Noviembre 2021, 16:04 pm »

Hola, soy nuevo desde hoy.
Estoy realizando un programa java mvc de 4 paquetes con las siguientes clases: Menu, Cine, EntradaTeclado, Genero, ListadoPeliculas, ListadoSalas, ListadoSesiones, Pelicula, Sala, Sesion, PeliculaDao, SalaDao, SesionDao y Controlador. Aunque para el programa falta mucho y todo lo demás lo sé estoy estancado creando una sesión para la cual debo asignar una fecha y una película, y además debe haber una sala anteriormente. Me marca nullpointer exception. El controlador solo inicia el menú. Os adjunto la clase SesionDao, donde estoy atascado, y la clase Sala y Cine.
A ver si alguien me echa una mano.

Método de ListadoPeliculas que falla
public Pelicula getPelicula(String titulo){
        for(Pelicula pelicula:listadoPeliculas){
            if(pelicula.getTitulo().equals(titulo)){
                return pelicula;
            }
        }
        return null;
    }

Este método no es el que me preocupa. Me preocupa esto: cine.getListadoSalas().getSala(numSala).getListadoSesiones().addSesion(sesion);

En el constructor de Menu tengo:
public Menu(){
        opcion=0;
        et=new EntradaTeclado();
        cine=new Cine();
       
        peliculaDao=new PeliculaDao(cine);
        salaDao=new SalaDao(cine);
        sesionDao=new SesionDao(cine);
    }

Un saludo a todos.

Código
  1. public class SesionDao {
  2.    private EntradaTeclado et;
  3.    private Cine cine;
  4.    private Sesion sesion;
  5.    private LocalDateTime horaSesion;
  6.    private Sala sala;
  7.    private Pelicula pelicula;  
  8.  
  9.    public SesionDao(Cine cine){
  10.        et=new EntradaTeclado();
  11.        this.cine=cine;
  12.    }
  13.  
  14.    public LocalDateTime indicarSesion(){
  15.        System.out.print("Introduzca año: ");
  16.        et.pedirEntrada();
  17.        int anyo=Integer.parseInt(et.getEntrada());
  18.        System.out.print("Introduzca mes: ");
  19.        et.pedirEntrada();
  20.        int mes=Integer.parseInt(et.getEntrada());
  21.        System.out.print("Introduzca día: ");
  22.        et.pedirEntrada();
  23.        int dia=Integer.parseInt(et.getEntrada());
  24.        System.out.print("Introduzca hora: ");
  25.        et.pedirEntrada();
  26.        int hora=Integer.parseInt(et.getEntrada());
  27.        System.out.print("Introduzca minuto: ");
  28.        et.pedirEntrada();
  29.        int min=Integer.parseInt(et.getEntrada());
  30.        System.out.print("Introduzca segundo: ");
  31.        et.pedirEntrada();
  32.        int sec=Integer.parseInt(et.getEntrada());
  33.        horaSesion=LocalDateTime.of(anyo,mes,dia,hora,min,sec);
  34.        return horaSesion;
  35.    }
  36.  
  37.    public void createSesion(){
  38.        System.out.println("CREAR NUEVA SESIÓN");
  39.        if(cine.getListadoSalas().isEmpty()==true){
  40.            System.out.println("No se puede crear una sesión");
  41.        }else{
  42.            try{          
  43.                horaSesion=indicarSesion();
  44.  
  45.                System.out.print("Introduzca el título de la película: ");
  46.                et.pedirEntrada();
  47.                String titulo=et.getEntrada();//utilizar toUpperCase()
  48.                //pelicula=new Pelicula();
  49.                //pelicula.setTitulo(titulo);
  50.                pelicula=cine.getListadoPeliculas().getPelicula(titulo);
  51.                System.out.println(cine.getListadoPeliculas().getPelicula(titulo).toString());//FALLA
  52.  
  53.                System.out.print("Introduzca el número de sala: ");
  54.                et.pedirEntrada();
  55.                int numSala=Integer.parseInt(et.getEntrada());
  56.                //sala=new Sala();
  57.                //sala.setNumSala(numSala);
  58.                sala=cine.getListadoSalas().getSala(numSala);
  59.                 System.out.println(sala.toString());
  60.                sesion=new Sesion(horaSesion,pelicula);
  61.                //opción 1
  62.                //sala.getListadoSesiones().addSesion(sesion);
  63.                //opción 2
  64.                //cine.getListadoSalas().getSala(numSala).getListadoSesiones().addSesion(sesion);
  65.  
  66.            }catch(NumberFormatException e){
  67.                System.out.println("El string insertado no tiene el formato apropiado");
  68.            }
  69.        }
  70.    }
  71.  
  72.    public void readSesion(){//sin acabar
  73.        System.out.println("\nVER SESIÓN");
  74.        horaSesion=indicarSesion();
  75.        //cine.getListadoSalas().getSala(numSala).mostrarInfoSala();
  76.        sesion=new Sesion(horaSesion);
  77.        //sesion=sala.getListadoSesiones().getSesion(horaSesion);
  78.        sesion.mostrarInfoSesion();
  79.    }
  80.  
  81.    public void updateSesion(){
  82.  
  83.    }
  84.  
  85.    public void deleteSesion(){
  86.  
  87.    }
  88. }

Código
  1. public class Cine {
  2.    private String nombre,direccion;
  3.    private ListadoPeliculas listadoPeliculas;
  4.    private ListadoSalas listadoSalas;
  5.  
  6.    public Cine(){
  7.        nombre="WINDSOR";
  8.        direccion="Trinidad 47";
  9.        listadoPeliculas=new ListadoPeliculas();
  10.        listadoSalas=new ListadoSalas();
  11.    }
  12.  
  13.    public String getNombre() {
  14.        return nombre;
  15.    }
  16.  
  17.    public String getDireccion() {
  18.        return direccion;
  19.    }
  20.  
  21.    public ListadoPeliculas getListadoPeliculas() {
  22.        return listadoPeliculas;
  23.    }
  24.  
  25.    public ListadoSalas getListadoSalas() {
  26.        return listadoSalas;
  27.    }
  28.  
  29. }
Código
  1. public class Sala {
  2.    private int numSala;
  3.    private int butacas;
  4.    private ListadoSesiones listadoSesiones;
  5.  
  6.    public Sala() {
  7.        listadoSesiones = new ListadoSesiones();
  8.        numSala=0;
  9.        butacas=0;
  10.    }
  11.  
  12.  
  13.    public Sala(int numSala, int butacas) {
  14.        this.numSala = numSala;
  15.        this.butacas = butacas;
  16.        ListadoSesiones listadoSesiones;
  17.    }
  18.  
  19.    public int getNumSala() {
  20.        return numSala;
  21.    }
  22.  
  23.    public int getButacas() {
  24.        return butacas;
  25.    }
  26.  
  27.    public ListadoSesiones getListadoSesiones() {
  28.        return listadoSesiones;
  29.    }
  30.  
  31.    public void setNumSala(int numSala) {
  32.        this.numSala = numSala;
  33.    }
  34.  
  35.    public void setButacas(int butacas) {
  36.        this.butacas = butacas;
  37.    }
  38.  
  39.    @Override
  40.    public String toString(){
  41.        return "Número sala: "+numSala+", número butacas: "+butacas;
  42.    }
  43.  
  44.    public void mostrarInfoSala(){
  45.        System.out.println("INFORMACIÓN DE LA SALA");
  46.        System.out.println("Id sala: <"+numSala+">\nNúmero de butacas: <"+butacas);
  47.    }
  48. }


« Última modificación: 13 Noviembre 2021, 18:01 pm por silk_25 » En línea

silk_25

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: java crear sesion cine nullpointerexception
« Respuesta #1 en: 13 Noviembre 2021, 18:38 pm »

Hola otra vez.
Ya he conseguido resolverlo. Solo era un problema de escritura al repetir ListadoSesiones
listadoSesiones en constructor.
Un saludo


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Solucionado] java.lang.NullPointerException por qué?
Java
Nakatsukasa Itero 0 5,128 Último mensaje 9 Mayo 2012, 21:32 pm
por Nakatsukasa Itero
Ejercicio Java cine
Java
Glwlwl 5 15,354 Último mensaje 25 Marzo 2015, 23:56 pm
por Glwlwl
Validar firma digita error java.lang.NullPointerException
Windows
mauro_ms 0 2,780 Último mensaje 13 Abril 2016, 22:36 pm
por mauro_ms
Ayuda por favor java.lang.NullPointerException
Java
TheZeck 1 2,387 Último mensaje 2 Mayo 2017, 00:55 am
por HardC0d3
java.lang.NullPointerException en funcion para polimeros
Java
juligarc10 1 2,483 Último mensaje 25 Septiembre 2019, 21:13 pm
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines