• 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
55 wizyt
pytanie zadane 8 listopada 2018 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 2018 przez RafalS VIP (110,100 p.)
Zalezy czym jest osoba. Raz traktujesz ta nazwe jak nazwe klasy raz jak nazwe zmiennej.
komentarz 8 listopada 2018 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 2018 przez RafalS VIP (110,100 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
2 odpowiedzi 71 wizyt
pytanie zadane 28 września 2018 w JavaScript, jQuery, AJAX przez Bakr Mądrala (6,650 p.)
0 głosów
1 odpowiedź 64 wizyt
+1 głos
1 odpowiedź 58 wizyt
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

63,362 zapytań

109,629 odpowiedzi

229,035 komentarzy

44,312 pasjonatów

Przeglądających: 180
Pasjonatów: 4 Gości: 176

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.

...