• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed dziwny zapis "Ludzie..."

Object Storage Arubacloud
+1 głos
139 wizyt
pytanie zadane 22 maja 2022 w Java przez Arek Kowalski Początkujący (450 p.)
zamknięte 22 maja 2022 przez Arek Kowalski

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

```public static class Ludzie {
        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);
        }

 

komentarz zamknięcia: znam odpowiedź
komentarz 22 maja 2022 przez Wiciorny Ekspert (269,710 p.)

Nie stosuj, jeśli jesteś autorem kodu - typów syrowych oraz względnych.

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

jeśli coś pochodzi od interfejsu to referencja tego obiektu powinna być typu INTERFEJSU, nie konkretnego obiektu.  

1 odpowiedź

+2 głosów
odpowiedź 22 maja 2022 przez Apled Dyskutant (9,520 p.)

To znaczy, że jako argument możesz przekazać zero lub więcej obiektów klasy Ludzie, albo ich zbiór jak np. listę, jak ta u góry: ArrayList<Ludzie> dzieci = new ArrayList<>();

komentarz 22 maja 2022 przez Arek Kowalski Początkujący (450 p.)
Varargs :) zgadza się?
komentarz 22 maja 2022 przez Wiciorny Ekspert (269,710 p.)

Kolega na górze źle mówi, to oznacza wiele argumentów ... ale nie możesz zapisać tam listy tylko typ względny więc albo to będą : obiekty Ludzie, albo to będzie prosta tablica -> która zawiera  T super <Ludzie> więc generalnie ograniczenie do Ludzie, Object, ewentualnie czegoś co występuje w hierarchi dziedziczenia ludzie. 

Natomiast nie może to byc lista, gdyż Lista jest innym typem. Więc można list.toArray, ale to niebezpieczne jest generalnie zalożenie. 

Podobne pytania

–1 głos
3 odpowiedzi 473 wizyt
pytanie zadane 9 maja 2017 w HTML i CSS przez Racjan Nowicjusz (190 p.)
0 głosów
1 odpowiedź 272 wizyt
pytanie zadane 19 stycznia 2017 w C i C++ przez DominikWłodarczyk Początkujący (320 p.)
+2 głosów
5 odpowiedzi 3,000 wizyt
pytanie zadane 30 maja 2015 w Inne języki przez Dissio Mądrala (5,830 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...