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

Lista obiektów

Object Storage Arubacloud
0 głosów
552 wizyt
pytanie zadane 31 sierpnia 2016 w Java przez Jonki Dyskutant (8,180 p.)
edycja 31 sierpnia 2016 przez Jonki

Ma ktoś pomysł w jaki sposób mógłbym tworzyć nowy obiekt w tej pętli?

while(input.hasNext())
				{
					line = input.next();
						
					if(line.equals("ID:"))
					{
						if(input.hasNextInt())
						{
							klient.ID = input.nextInt();
						}
					}
					if(line.equals("Imię:"))
					{
						klient.imie = input.next();
					}
					if(line.equals("Nazwisko:"))
					{
						klient.nazwisko = input.next();
					}
					if(line.equals("Rok_urodzenia:"))
					{
						if(input.hasNextInt())
						{
							klient.rok_urodzenia = input.nextInt();
						}
					}
					if(line.equals("Płeć:"))
					{
						klient.plec = input.next();
					}
					if(line.equals("PIN:"))
					{
						if(input.hasNextInt())
						{
							klient.PIN = input.nextInt();
						}
					}
					if(line.equals("Hasło:"))
					{
						klient.haslo = input.next();
					}
					if(line.equals("Pytanie_pomocnicze:"))
					{
						klient.pytanie_pomocnicze = input.next();
					}
					if(line.equals("Odpowiedz:"))
					{
						klient.odpowiedz = input.next();
					}	
					if(line.equals("Stan_konta:"))
					{
						if(input.hasNextInt())
						{
							klient.stan_konta = input.nextInt();
							
							list.add(klient);
						}
					}
				}

Program po wczytaniu ostatniej wartości, czyli stanu konta dodawałby obiekt do listy. Lecz nie wiem jak go w tej pętli tworzyć.

Cała metoda http://pastebin.com/edLcnPqW 

 

Mam już mniej więcej cały zarys metody, ale dalej tkwie w momencie tworzenia obiektu.

1 odpowiedź

0 głosów
odpowiedź 31 sierpnia 2016 przez Nifrez Obywatel (1,090 p.)
edycja 31 sierpnia 2016 przez Nifrez

Może wystarczy go stworzyć poza pętlą ?

 

@Edit dobra wstawiłeś kod i rozumiem teraz o co chodzi,

1. Używaj setterów

2. Zrob sobie zmienne pomocniczne

3. Mniejwiecej tak

 

try {
                input = new Scanner(file);
               
                String line;
                String id;
                String imie;
                String nazwisko;
                String rokUrodzenia;
                String plec;
                int pin;
                String haslo;
                String pytaniePomocnicze;
                String odpowiedz;
                int stanKonta;


               
                while(input.hasNext())
                {
                    line = input.next();
                       
                    if(line.equals("ID:"))
                    {
                        if(input.hasNextInt())
                        {
                            id = input.nextInt();
                        }
                    }
                    if(line.equals("Imię:"))
                    {
                        imie = input.next();
                    }
                    if(line.equals("Nazwisko:"))
                    {
                        nazwisko = input.next();
                    }
                    if(line.equals("Rok_urodzenia:"))
                    {
                        if(input.hasNextInt())
                        {
                            rokUrodzenia = input.nextInt();
                        }
                    }
                    if(line.equals("Płeć:"))
                    {
                        plec = input.next();
                    }
                    if(line.equals("PIN:"))
                    {
                        if(input.hasNextInt())
                        {
                            pin = input.nextInt();
                        }
                    }
                    if(line.equals("Hasło:"))
                    {
                        haslo = input.next();
                    }
                    if(line.equals("Pytanie_pomocnicze:"))
                    {
                        pytaniePomocnicze = input.next();
                    }
                    if(line.equals("Odpowiedz:"))
                    {
                        odpowiedz = input.next();
                    }  
                    if(line.equals("Stan_konta:"))
                    {
                        if(input.hasNextInt())
                        {
                            stanKonta = input.nextInt();
                           Klient newKlient = new Klient();
                           newKlient.setId(id);
                           newKlient.setImie(imie);
                           newKlient.setNazwisko(nazwisko);
                           newKlient.setRokUrodzenia(rokUrodzenia);
                           newKlient.setPlec(plec);
                           newKlient.setPin(pin);
                           newKlient.setHaslo(haslo);
                           newKlient.setPytaniePomocnicze(pytaniePomocnicze);
                           newKlient.setOdpowiedz(odpowiedz);
                           newKlient.setStanKonta(stanKonta);
                            list.add(newKlient);
                        }
                    }
                }

 

komentarz 31 sierpnia 2016 przez Jonki Dyskutant (8,180 p.)
Jeśli stworzę obiekt poza pętlą, to we wszystkich obiektach w liście są dane ostatniego klienta. Nie wiem czemu tak się dzieje. Skoro przeczytało dane pierwszego klienta, przydzieliło do zmiennych, dodało obiekt do listy, i zaczęło sczytywać dane drugiego klienta, chyba podmieniło dane pierwszego klienta w tym obiekcie, który stworzyłem poza pętlą tylko raz i tak dalej robiło z kolejnymi. A wychodzi, że dane ostatniego klienta są we wszystkich obiektach.
komentarz 31 sierpnia 2016 przez Nifrez Obywatel (1,090 p.)
Dodałeś kod po chwili i wysłałem edit posta ;) przeczytaj

 

dodatkowo polecam przeczytać to:

https://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/

może się przydać
komentarz 31 sierpnia 2016 przez Jonki Dyskutant (8,180 p.)
To co podałeś to chyba jeszcze nie mój poziom.

Podobne pytania

0 głosów
1 odpowiedź 3,157 wizyt
pytanie zadane 19 lipca 2016 w C i C++ przez JAKUBW Nałogowiec (33,470 p.)
0 głosów
1 odpowiedź 108 wizyt
0 głosów
1 odpowiedź 183 wizyt
pytanie zadane 13 lutego 2021 w Java przez Lulex Użytkownik (820 p.)

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 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!

...