Wyświetlanie listy.

0

Witam.

Mam takie zadanko:
zad3.png

Uczestnicy jak łatwo się domyśleć to Dzieci i Opiekunowie albo innaczej Dzieci i Opiekunowie dziedziczą po klasie Uczestnicy, więc zrobiłem sobie konstruktor, który tworzy obiekty ArrayList<Uczestnicy>, a mam problem z wyświetleniem Uczestnika według typu. Zrobiłem coś takiego:

public void wyswietlWgTypu(String klasa){
		for(int i=0;i<listaUczestnikow.size();i++){
			
			if(listaUczestnikow.getClass().getName() == klasa){
				System.out.print(listaUczestnikow.get(i));
			}
		}
	}

Niestety to nie chce działać :( Można prosić o jakąś podpowiedz ?:)

0

Na moje oko poprawnie byłoby przechowywać jednak osobno jednych i drugich ale jak sobie chcesz... Poza tym pisz to po ludzku jak w Javie a nie w C

public void wyswietlWgTypu(Class klasa){
  for(Uczestnik u : listaUczestnikow){
    if(u instanceof klasa){
      System.out.print(u);
    }
  }
}
//wołane jako
wycieczka.wyswietlWgTypu(Dziecko.class);

a stringi w javie porównuje się przez .equals() a nie ==

0

No niestety coś mi to nie działa :( ta metoda wyświetlania.

Exception in thread "main" java.lang.Error: Nierozwiązane problemy z kompilacją: 
	Niezgodne typy operandów warunkowych Uczestnicy i klasa
	Nie można rozpoznać klasa jako typu

	at Wycieczka.wyswietlWgTypu(Wycieczka.java:82)
	at Wycieczka.main(Wycieczka.java:166)
public void wyswietlWgTypu(Class klasa){
		for(Uczestnicy u: listaUczestnikow){
			if(u instanceof klasa){ //tu wywala błąd
				System.out.println(u);
			}
		}
			
	}

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