Wyszukiwanie po tablicy obiektów klas

0

Dobry wieczór.

Pewien czas temu napisałem program obiektowy do wyszukiwania i dodawania do tablicy obiektów klas ,nowych obiektów.
Projekt skompilował się pomyślnie ,jednak gdy próbuję wyszukać jakiś obiekt/obiekty wg danego to ma miejsce sytuacja przedstawiona w załączniku o nazwie błąd.png

Dlaczego tak się dzieje i jak powinna wyglądać prawidłowa metoda wyszukująca obiekt wg kryteriów?

Kod źródłowy programu przesyłam w załączniku o nazwie zad3_2.zip

0

W pliku "metody.java" w linii 98 odwołujesz się do obiektu, który jest nullem, dlatego zostaje rzucony wyjątek NullPointerException.

0

Wie ktoś może ,jak ktoś może skonstruować metodę wyszukiwania ,tak aby ominąć ten wyjątek?

0

Na null pointer możesz natknąć się zawsze i wszędzie. Po prostu nie wywołuj metody na nullu. Upewnij się, że wywołując metodę, jako jej argument podajesz utworzony wcześniej obiekt. Albo druga opcja - w ciele metody zastosuj ifa sprawdzającego, czy parametr jest nullem. Jeśli nie, to wykonaj to co masz wykonać. Jeśli jest - nie rób nic.

0

W jakim języku Ty piszesz?

            case(k)
            switch 1:
            System.out.println("Podaj Imię szukanego pracownika: ");    
            Im=wej.nextString(System.in);
            met.wyszukaj_Imie_u(Im);
            break;
            switch 2:
            System.out.println("Podaj Nazwisko szukanego pracownika: ");    
            Naz=wej.nextString(System.in);
            met.wyszukaj_Nazwisko_u(Nazw);
            break;
0

W języku programowania o nazwie Java.
Pomyliłem słowa kluczowe w instrukcji warunkowej switch-case.

0

Jeśli chcesz pomocy, to udostępnij ten kod, który powoduje błędy. Wysyłanie niekompilowalnych idiotyzmów mija się z celem.

0

Ok.Oto kod źródłowy 1 z plików programu.

metody.java

public class metody
{
    final int MAX = 9;
    Prac_Uczelni pr_u[] = new Prac_Uczelni[MAX];
    Prac_Admin pr_a[] = new Prac_Admin[MAX];
    public void dodajPrac_Uczelni(String Im, String Nazw,String  nrPesel ,int w , int zar ,int nr_Wydz)
    {
     int lpu=0;
        if(lpu<MAX)
     {pr_u[lpu]=new Prac_Uczelni(Im,Nazw,nrPesel,w,zar,nr_Wydz);
         lpu++;
        }       
    else
        {
            System.out.println("Brak wolnego miejsca.");         
        }
    }
     public void dodajPrac_Admin(String Im, String Nazw, String nrPesel ,int w, int zar, String Stanow)
    {
     int lpa=0;
        if(lpa<MAX)
        {pr_a[lpa]=new Prac_Admin(Im,Nazw,nrPesel,w,zar,Stanow);
         lpa++;
        }       
    else
        {
            System.out.println("Brak wolnego miejsca.");    
        }
    }
    public void wyszukaj_Imie_u(String Im){
        for(int i=0;i<MAX;i++)
        {
           if(pr_u[i].Imie.equals(Im)){
           System.out.println(pr_u[i].toString()); 
            }
        }
    }
        public void wyszukaj_Imie_a(String Im){
            for(int i=0;i<MAX;i++)
        {
           if(pr_a[i].Imie.equals(Im)){
           System.out.println(pr_a[i].toString()); 
            }
        }
    }
    public void wyszukaj_Nazwisko_u(String Nazw)
     {
         for(int i=0;i<MAX;i++)
     {
           if(pr_u[i].Nazwisko.equals(Nazw)){
           System.out.println(pr_u[i].toString()); 
            }
     }
    }
    public void wyszukaj_Nazwisko_a(String Nazw){
        for(int i=0;i<MAX;i++)
     {
           if(pr_a[i].Nazwisko.equals(Nazw)){
           System.out.println(pr_a[i].toString()); 
            }
     } 
    }
    public void wyszukaj_Pesel_u(String nrPesel){
        for(int i=0;i<MAX;i++)
        {
            if(pr_u[i].Pesel.equals(nrPesel)){
            System.out.println(pr_u[i].toString());
            }
        }
    }
        public void wyszukaj_Pesel_a(String nrPesel){
            for(int i=0;i<MAX;i++)
        {
            if(pr_a[i].Pesel.equals(nrPesel)){
            System.out.println(pr_a[i].toString());
            }
        }
    }
    public void wyszukaj_wiek_u(int w){
        for(int i=0;i<MAX;i++)
        {
            if(pr_u[i].wiek==w){
            System.out.println(pr_u[i].toString());
            }
        }
    }
    public void wyszukaj_wiek_a(int w){
        for(int i=0;i<MAX;i++)
        {
            if(pr_u[i].wiek==w){
            System.out.println(pr_u[i].toString());
            }
        }
    }
    public void wyszukaj_Zarobki_u(int zar){
        for(int i=0;i<MAX;i++)
        {
            if(pr_a[i].zarobki==zar){
            System.out.println(pr_a[i].toString());
            }
        }
    }
    public void wyszukaj_Zarobki_a(int zar){
        for(int i=0;i<MAX;i++)
        {
            if(pr_a[i].zarobki==zar){
            System.out.println(pr_u[i].toString());
            }
        }
    }
    public void wyszukaj_Stanowisko(String Stanow){
        for(int i=0;i<MAX;i++)
        {
            if(pr_a[i].Stanowisko.equals(Stanow)){
            System.out.println(pr_u[i].toString());
            }
        }
    }
      public void wyszukaj_nrWydzialu(int nrWydz){
          for(int i=0;i<MAX;i++)
        {
            if(pr_u[i].nr_Wydzialu==nrWydz){
            System.out.println(pr_u[i].toString());
            }
        }
    }
   }
bogdans napisał(a):

Jeśli chcesz pomocy, to udostępnij ten kod, który powoduje błędy. Wysyłanie niekompilowalnych idiotyzmów mija się z celem.

Dziękuję za bardzo uprzejmy komentarz XD.

0

Zbanować i usunąć temat, żeby robot googla się nie zepsuł.

0

Nie znasz swojego kodu. Koszmarne bzdury, które cytowałem, są z pliku program.java.
Może poprzednio napisałem zbyt zwięźle. Udostępnij kod programu, który u Ciebie się uruchamia, ale działa źle. Ty udostępniłeś kod niekompilowalny, zatem nie jest to kod, który testujesz u siebie. Szukanie błędu w takim kodzie nie ma sensu.

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