Użyty wzorzec: Builder.
Problem: Warunek if.
Opis Problemu: Spodziewał się wartości, dostał klasę.
Status błędu: Krytyczny. Nie pozwala dokończyć budowę obiektów ;/.
Miejsce błędu:
public void construct(boolean isCreateBuyer, int index){ if (isCreateBuyer == true){ buildBuyer(index); } else { buildSeller(index); } }// O to się pruje.
Pozostała części metody w klasie:
private void buildBuyer (int index){ buildUser(); buyer.buildtoID(index); buyer.buildToName(inputName); buyer.buildToSurName(inputSurName); buyer.buildToLogin(inputLogin); buyer.buildToEmail(inputEmail); buyer.buildToTrustyPoint(inputTrustyPoint); buyer.returnProduct(); } private void buildSeller(int index){ buildUser (); seller.buildtoID(index); seller.buildToName(inputName); seller.buildToSurName(inputName); seller.buildToLogin(inputLogin); seller.buildToEmail(inputEmail); seller.buildToTrustyPoint(inputTrustyPoint); buildAuction(); seller.buildToNameAuction(inputNameAuction); seller.buildToDescriptionAuction(inputDescriptionAuction); seller.buildToStartPrize(inputStartPrize); seller.buildToLongTimeAuction(inputLongTimeAuction); seller.buildToMinTrustyPoint(inputMinTrustyPoint); seller.returnProduct(); } private void buildAuction (){ System.out.println("Podaj nazwę aukcji"); inputNameAuction = input.nextLine(); System.out.println("Podaj opis aukcji"); inputDescriptionAuction = input.nextLine(); System.out.println("Podaj cenę początkową"); inputStartPrize = input.nextDouble(); System.out.println("Podaj czas aukcji"); inputLongTimeAuction = input.nextInt(); System.out.println("Podaj minimum punktów zaufania"); inputMinTrustyPoint = input.nextInt(); } private void buildUser(){ System.out.println("Podaj imię osoby kupującej"); inputName = input.nextLine(); System.out.println("Podaj nazwisko osoby kupującej"); inputSurName = input.nextLine(); System.out.println("Podaj login"); inputLogin = input.nextLine(); System.out.println("Podaj email"); inputEmail = input.nextLine(); System.out.println("Podaj ilośc punktów"); inputTrustyPoint = input.nextInt(); } public BuyerBuilder getBuyer() { return buyer; }
Jeżeli zajdzie, potrzeba podam konkretnych budowniczych.
EDIT: Już wiem, o co chodziło. Nie chodziło o samą klasę Scanner, ale o to że inicjowałem metody z klasy buyer, nie inicjując samego obiektu. Co ciekawe, viewer code nie stwierdzał problemu , że chcę inicjować metody nie zinicjonowanej klasy. Zostawiam to jako przestrogę, bo praktycznie wykosiłem całą klasę, ale w końcu go znalazłem. Nie mówiąc o straconych nerwach , dziękuje wszystkim za pomoc. Mam nadzieję, że nie będzie już problemów.