UML / java błąd java.lang.NullPointerException

0

Witam pisze pod UML-em w Netbeansie tzn zaczynam "przygode" z UML-em , program "wypozyczalnie filmów".

Po skompilowaniu kilku klas: Film.java, Tytul_filmu.java, Uchwyt.java pojawia sie problem ;-(

Odpalam program za pomoca Uchwyt.java tutaj kod:


import java.util.ArrayList; 


public class Uchwyt {

 
    private ArrayList<Tytul_filmu> mTytul_filmu = new ArrayList<Tytul_filmu>();


    public void dodaj_tytul (String a, String b, String c, String d, String e, String f)
    {
        Tytul_filmu tytul_filmu=new Tytul_filmu();
        tytul_filmu.setTytul(a);
        tytul_filmu.setRezyseria(b);
        tytul_filmu.setGatunek(c);
        tytul_filmu.setPremiera(d);
        tytul_filmu.setObsada(e);
        tytul_filmu.setCzas_trwania(f);
        addTytul_filmu(tytul_filmu);
    }
//////////////////////////////////////////////////////////////
    public ArrayList<Tytul_filmu> getTytul_filmu () {
        return mTytul_filmu;
    }

    public void setTytul_filmu (ArrayList<Tytul_filmu> val) {
        this.mTytul_filmu = val;
    }

    public void addTytul_filmu (Tytul_filmu tytul_filmu)
    {if(! mTytul_filmu.contains(tytul_filmu))
    mTytul_filmu.add(tytul_filmu);}

    public void Dodaj_film(String Gatunek_, int numer_)
    {
    Tytul_filmu pom=new Tytul_filmu();
    pom.setGatunek(Gatunek_);
    int idx=mTytul_filmu.indexOf(pom);
    if (idx!=-1)
    {Tytul_filmu pom1=mTytul_filmu.get(idx);
     pom1.dodaj_film(numer_);
     System.out.println(pom1.getFilm().toString());
     
    }

//////////////////////////////////////////////////////////
    }
    public static void main(String t[])
    {
        Uchwyt ap=new Uchwyt();
        ap.dodaj_tytul("1","1","1","1","1","1");
        ap.dodaj_tytul("2","2","2","2","2","2");
        ap.dodaj_tytul("2","2","2","2","2","2");
        String lan=ap.getTytul_filmu().toString();
        System.out.println(lan);
    
    ap.Dodaj_film("1",1);
    ap.Dodaj_film("1",2);
    ap.Dodaj_film("1",2);
    ap.Dodaj_film("2",1);
    }
   
    }


tutaj : Film.java [code]
public class Film {

private int numer;

private Tytul_filmu mTytul_filmu;

public int getNumer ()
{ return numer; }

public void setNumer (int _numer) {
    numer = _numer;
}

public Film ()
{}

public boolean equals (Object ob) {
    return numer==((Film)ob).getNumer();
    }

public Tytul_filmu getTytul_filmu ()
{ return mTytul_filmu; }

public void setTytul_filmu(Tytul_filmu val)
{ mTytul_filmu=val; }

public String toString()
{String pom= mTytul_filmu.toString();
pom+="Numer: "+getNumer();
return pom;
}
}

Tytul_filmu:

import java.util.ArrayList;

public class Tytul_filmu {

private String Rezyseria;
private String Gatunek;
private String Premiera;
private String Obsada;
private String Czas_trwania;
private String Tytul;
private ArrayList<Film> mFilm;


public Tytul_filmu () {
}

public String getCzas_trwania () {
    return Czas_trwania;
}

public void setCzas_trwania (String f) {
    Czas_trwania = f;
}

public String getGatunek () {
    return Gatunek;
}

public void setGatunek (String c) {
   Gatunek = c;
}


public String getObsada () {
    return Obsada;
}

public void setObsada (String e) {
    Obsada = e;
}

public String getPremiera () {
    return Premiera;
}

public void setPremiera (String d) {
    Premiera = d;
}

public String getRezyseria () {
    return Rezyseria;
}

public void setRezyseria (String b) {
   Rezyseria = b;
}

public String getTytul () {
    return Tytul;
}

public void setTytul (String a) {
    Tytul = a;
}

/////////////////////////////////////
public boolean equals(Object ob)
{boolean a;
a=Gatunek.equals(((Tytul_filmu)ob).getGatunek());
System.out.println(a);
return a;

}

//////////////////////////////////

public String toString () {
    String pom="Tytul: "+getTytul();
    pom+="Rezyser: "+getRezyseria();
    pom+="Gatunek: "+getGatunek();
    pom+="Premiera: "+getPremiera();
    pom+="Obsada: "+getObsada();
    pom+="Czas_trwania: "+getCzas_trwania();
    return pom;
}
////////////////////////////////

public void dodaj_film(int numer_)

{ Film nowa=new Film();
  if(nowa != null)
  {nowa.setNumer(numer_);
   addFilm(nowa);}
  }

public void addFilm(Film nowa)
{ if(!this.mFilm.contains(nowa))
{ this.mFilm.add(nowa);
  nowa.setTytul_filmu(this); }

}

public ArrayList<Film> getFilm()
{return mFilm; }
public void setFilm(ArrayList<Film> val)
{this.mFilm = val;}
}


No i po kompilacji i uruchomieniu Uchwyt.java wyswietla mi sie nastepujacy komunikat:

Exception in thread "main" java.lang.NullPointerException
at Tytul_filmu.addFilm(Tytul_filmu.java:101)
at Tytul_filmu.dodaj_film(Tytul_filmu.java:97)
at Uchwyt.Dodaj_film(Uchwyt.java:41)
at Uchwyt.main(Uchwyt.java:57)
Java Result: 1


tutaj caly debug:

debug:
false
false
true
[Tytul: 1Rezyser: 1Gatunek: 1Premiera: 1Obsada: 1Czas_trwania: 1, Tytul: 2Rezyser: 2Gatunek: 2Premiera: 2Obsada: 2Czas_trwania: 2]
true
Exception in thread "main" java.lang.NullPointerException
at Tytul_filmu.addFilm(Tytul_filmu.java:101)
at Tytul_filmu.dodaj_film(Tytul_filmu.java:97)
at Uchwyt.Dodaj_film(Uchwyt.java:41)
at Uchwyt.main(Uchwyt.java:57)
Java Result: 1
BUILD SUCCESSFUL (total time: 2 seconds)


Prosze o pomoc bardziej doswiadczonych Uzytkowników .
0

Może dlatego, że nigdzie nie inicjalizujesz Tytul_filmu.mFilm.

1 użytkowników online, w tym zalogowanych: 0, gości: 1