dziwny zapis "Ludzie... dzieci" ??

0

witam, poniżej jest fragment kodu z zadania z "CodeGym" - nie rozumiem pewnego zapisu, zechce mi ktoś wytłumaczyć ? Chodzi mi o "Ludzie... dzieci".

        String imie;
        boolean plec;
        int wiek;

        ArrayList<Ludzie> dzieci = new ArrayList<>();

        public Ludzie(String imie, boolean plec, int wiek) {
            this.imie = imie;
            this.plec = plec;
            this.wiek = wiek;
        }

        public Ludzie(String imie, boolean plec, int wiek, Ludzie... dzieci) {
            this.imie = imie;
            this.plec = plec;
            this.wiek = wiek;

            Collections.addAll(this.dzieci, dzieci);
        }

3

Co ci wytłumaczyć i w którym miejscu?

 ArrayList<Ludzie> dzieci = new ArrayList<>();

Tworzy tablice obiektów klasy "Ludzie". Tablica nazywa się "dzieci".

1

... to argumenty dzieci (lista) po ,

0
Areczkas napisał(a):

witam, poniżej jest fragment kodu z zadania z "CodeGym" - nie rozumiem pewnego zapisu, zechce mi ktoś wytłumaczyć ? Chodzi mi o "Ludzie... dzieci".

Ludzie... dzieci.

To dowolna (w sumie to nie wiem ) liczba argumentów typu Ludzie, które możesz przekazywać po przecinku. Możesz ją wykonać tak


public Ludzie(Sebastian, true, int 34, dzieciZKariną, dzieciZDżesiką, dzieciZAndźelą)

A po stronie ciała metody masz do nich dostęp poprzez Ludzie[] dzieci

... i właśnie zauważyłem, że odkryłeś :)

2

Warto wyraźnie powiedzieć, że wewnątrz rzeczonej metody do się traktuje w 100% jak tablicę (nie listę).
Łącznie z niemal obowiązkowym zapytaniem o długość, która może być zero (chyba że foreach)

Jak się chce w zewnętrznym API wymusić 1..N ja używam

public Ludzie(String imie, boolean plec, int wiek, Ludzie dziecko1, Ludzie... dzieci) {

I potem lekko się gimnastykować wewnątrz.

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