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

dodawanie do listy w obiecie

Object Storage Arubacloud
0 głosów
183 wizyt
pytanie zadane 13 lutego 2021 w Java przez Lulex Użytkownik (820 p.)

Cześć.

Chciałem pobawić się troche w apke dla komisu samochodowego. Mam klasę Vehicle i klasę Person (klienta komisu). W klasie Person mam utworzone pola w których jest m.in lista wszystkich pojazdów jakie posiada  ta osoba.

List<Vehicle> listOfOwnedVehicles;

I teraz - osoba chce kupić pojazd z komisu więc chcę dodać obiekt klasy Vehicle do tej listOfOwnedVehicles . W jaki sposób mogę to zrobić?

Próbowałem z 

person.getListOfOwnedVehicles().add(Vehicle);

i z setterem, no ale nie działało niestety.

 

public void sellVehiculeForCustomer(List<Person> listOfPersons, List<Vehicle> listOfVehicles) {
        int choosedPerson, choosedVehicle;

        System.out.println("*SELL A VEHICULE*");
        System.out.println("Choose a customer: ");

        choosedPerson = scanner.nextInt();

        System.out.println("Choose a vehicle which will be sold: ");
        choosedVehicle = scanner.nextInt();

        Vehicle soldVehicle = listOfVehicles.get(choosedVehicle - 1);

        for (Person person : listOfPersons) {
            if (person.getId() == choosedPerson) {
                    person.getListOfOwnedVehicles().add(soldVehicle);
                }
            }
        }
    }

 

1 odpowiedź

0 głosów
odpowiedź 13 lutego 2021 przez Wiciorny Ekspert (269,710 p.)
edycja 13 lutego 2021 przez Wiciorny

Co zwraca metoda getListOfOwnedVehicles() :) i jak wygląda  klasa sama w sobie?
I druga sprawa, jak sprawdzasz, czy element został dodany, bo mam wrażenie, że mylisz liste- należącą np do obiektu, a liste, do klasy... tu też się kładnia pojęcia static vs object fields

Bo sama deklaracja bez inicjalizacji - generalnie jesli dodasz element do takiej kolekcji to go nie dodajesz. i nadal będzie to null 

List<Vehicle> listOfOwnedVehicles;

// dla przykładu tutaj 
static List<String> test;

public static void main(String[] args) {
    test.add("dupa");
    System.out.println(test.toString()); // zwróci null 

}

a swoją drogą 

List<Vehicle> listOfOwnedVehicles;

to nie jest lista, to jest referencja na liste, ale nawet nie ma obiektu tutaj, więc to jest na razie  jest to wskaxnik na typ zwracany, a nie na "coś konkretnego" 

Podobne pytania

0 głosów
1 odpowiedź 553 wizyt
pytanie zadane 31 sierpnia 2016 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 108 wizyt
0 głosów
1 odpowiedź 3,161 wizyt
pytanie zadane 19 lipca 2016 w C i C++ przez JAKUBW Nałogowiec (33,470 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

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

...