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

Domyślna wartość w argumencie.

0 głosów
50 wizyt
pytanie zadane 8 listopada w Java przez sebastian970 Użytkownik (670 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 przez RafalS Szeryf (81,250 p.)
Zalezy czym jest osoba. Raz traktujesz ta nazwe jak nazwe klasy raz jak nazwe zmiennej.
komentarz 8 listopada przez sebastian970 Użytkownik (670 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 przez RafalS Szeryf (81,250 p.)
edycja 8 listopada 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ź 127 wizyt
0 głosów
2 odpowiedzi 71 wizyt
pytanie zadane 28 września w JavaScript, jQuery, AJAX przez Bakr Mądrala (5,970 p.)
0 głosów
1 odpowiedź 56 wizyt
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

57,749 zapytań

102,789 odpowiedzi

212,079 komentarzy

29,694 pasjonatów

Przeglądających: 314
Pasjonatów: 6 Gości: 308

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...