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

Domyślna wartość w argumencie.

VPS Starter Arubacloud
0 głosów
107 wizyt
pytanie zadane 8 listopada 2018 w Java przez sebastian970 Użytkownik (710 p.)

Witam, chciałbym się dowiedzieć w jaki sposób mogę dodać automatycznie daną listę już utworzonych obiektów do vectora lub innych kolekcji obiektów.

Iterator<osoba> it = listaosob.iterator();
for(int i =0; i<osoba.numberofobjects; i++){ 
    
    listaosob.add(osoba+i); //Tutaj nie wiem jak sprawić aby kompilator czytał to jako np. osoba1, osoba2 itp.

}

Chodzi o to, żeby moją pętla for potrafiła dopisywać wartość i do osoby tak by kompilator ją zczytywał do vectora jako obiekt np. i=1 to listaosob.add(osoba1);

Wiem, że była taka możliwość, ale nigdzie nie mogę tego znaleźć.

1
komentarz 8 listopada 2018 przez RafalS VIP (122,820 p.)
Zalezy czym jest osoba. Raz traktujesz ta nazwe jak nazwe klasy raz jak nazwe zmiennej.
komentarz 8 listopada 2018 przez sebastian970 Użytkownik (710 p.)
Właśnie osoba jest klasą posiadającą obiekty nazwane np. osoba1, osoba2, osoba3, osoba4, osoba5 itp.

Zastanawiam się w jaki sposób mógłbym zmienić np. string - "osoba"+i aby mógł on zostać użyty jako argument w listaosob.add("tutaj"); lub aby kompilator zczytał to jako nazwę obiektu.

1 odpowiedź

0 głosów
odpowiedź 8 listopada 2018 przez RafalS VIP (122,820 p.)
edycja 8 listopada 2018 przez RafalS

Właśnie osoba jest klasą posiadającą obiekty nazwane np. osoba1, osoba2, osoba3, osoba4, osoba5 itp.

Jeśli chcesz wyciągać te składowe na podstawie stringów to pytasz o refleksje. A jeśli musisz użyć refleksji to prawdopodobnie źle zaprojektowałeś klasy. Szczególnie jeśli potrzebujesz jej w tak błachym przypadku.

Zrób w klasie osoba liste tych obiektów zamiast dawac im nazwy obiekt1, obiekt2, obiekt3 ...

Gdyby był ciekawy to tak to wygląda na refleksjach:

class A{
    int a0;
    int a1;
    int a2;
    int a3;
}

public class Main {
    public static void main(String[] args) throws IllegalAccessException, NoSuchFieldException  {
        A a = new A();
        for (int i = 0; i < 3; i++) {
            System.out.println("a" + i + "= " + a.getClass().getDeclaredField("a" + i).getInt(a));
        }
    }
}

 

Podobne pytania

0 głosów
1 odpowiedź 158 wizyt
pytanie zadane 22 czerwca 2020 w C i C++ przez RufinB Obywatel (1,880 p.)
0 głosów
1 odpowiedź 1,554 wizyt
pytanie zadane 6 kwietnia 2020 w SQL, bazy danych przez kubekszklany Gaduła (3,230 p.)
0 głosów
2 odpowiedzi 177 wizyt
pytanie zadane 28 września 2018 w JavaScript przez Bakr Mądrala (6,850 p.)

93,032 zapytań

141,996 odpowiedzi

321,300 komentarzy

62,379 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...