2016-08-09 3 views
-5

Я хотел был бы создать arraylist от входа сканера. Это система проката мотоциклов. Помогите пожалуйста :) Я абсолютный новичок: DОт сканера до arraylist

Я пытаюсь создать таблицу, как это: (дата, дата, имя, licenceID)

  1. 2016-08-09, 2016-08 -20, г-н Смит, 1234567
  2. 2016-08-05, 2016-08-06, г-н Джексон, 6435434

Это мой код:

public class Launcher{ 

    public static void main(String[] args) throws IOException { 

     ArrayList<Launcher> reservationlist = new ArrayList<>(); 
     reservationlist.add(2016-08-09, 2016-08-20, Mr Smith, 1234567; // there is an error 

     Helper.welcomeMessage(); 
     char choice, ignore; 

     for (;;) { 
      do { 
       Helper.showMenu(); 

       choice = (char) System.in.read(); 
       do { 
        ignore = (char) System.in.read(); 
       } while (ignore != '\n'); 
      } while (choice < '1' | choice > '5' & choice != 'q'); 
      if (choice == 'q') { 
       break; 
      } 

      Orders order = new Orders(); 

      switch (choice) { 
       case '1': // Get information about company 
        Helper.aboutUs(); 
        break; 
       case '2': // List of our motorcycles (enum) 
        System.out.println("Price per 1 day: PREMIUM 500, GOLD 500, BASIC 500"); 
        for (Prices pricelist : Prices.values()) 
         System.out.printf("%s\t%s\n", pricelist.getTitle(), pricelist); 
        break; 
       case '3': // Make a reservation 
        Scanner hp = new Scanner(System.in); 
        Orders reservation = new Orders(); 

        System.out.println("Type initial date:"); 
        reservation.initialDate = hp.next(); 

        System.out.println("Type final date:"); 
        reservation.finalDate = hp.next(); 

        System.out.println("Type your first name and last name:"); 
        reservation.name = hp.next(); 

        System.out.print("Type your driving licence ID:"); 
        reservation.drivingLicenceID = hp.next(); 

        System.out.println("\n\n Reservation completed " + reservation.name + "\n Thanks for your reservation\n"); 
        break; 

        reservationlist.add(reservation.initialDate, reservation.finalDate, reservation.name, reservation.drivingLicenceID)); // there is an error 

       case '4': // Check availability of motorcycles 
        System.out.println(""); 
        break; 
       case '5': // Contact with us 
        Helper.contact(); 
        break; 
      } 


public class Orders { 

     String initialDate; 
     String finalDate; 
     String name; 
     String drivingLicenceID; 

    public Orders(String initialDate, String finalDate, String name, String drivingLicenceID) { 
     this.initialDate = initialDate; 
     this.finalDate = finalDate; 
     this.name = name; 
     this.drivingLicenceID = drivingLicenceID; 
    } 

    public Orders() {} 

    @Override 
    public String toString() { 
     return "Orders{" + 
       "initialDate='" + initialDate + '\'' + 
       ", finalDate='" + finalDate + '\'' + 
       ", name='" + name + '\'' + 
       ", drivingLicenceID=" + drivingLicenceID + 
       '}'; 
    } 

    public void setInitialDate(String initialDate) { 
     this.initialDate = initialDate; 
    } 
    public void setFinalDate(String finalDate) { 
     this.finalDate = finalDate; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public void setDrivingLicenceID(String drivingLicenceID) { 
     this.drivingLicenceID = drivingLicenceID; 
    } 
} 
+6

У вас есть код, но вы забыли вопрос. – Kayaman

+0

'bookinglist.add (2016-08-09, 2016-08-20, г-н Смит, 1234567;' Каков ожидаемый результат этой строки? Во-первых, отсутствует необходимый ')'. Во-вторых, метод 'add' ожидает, что вы предоставите' Launcher'. – bradimus

+0

При загрузке данных в список резервирования существует несколько серьезных ошибок. Прежде всего, почему вы объявляете его о запуске типа? Во-вторых, вы вставляете разные типы в один и тот же arraylist (в Java, arraylists может иметь только один тип объектов, хранящихся в них). В-третьих, ни одна из переменных, которые вы пытаетесь вставить, правильно написана (т. Е. В строке нет двойных кавычек, а дата написана как выражение). Я настоятельно рекомендую вам начать с небольшой программы и проработать свой путь вверх. – alexgbelov

ответ

2

Я предполагаю, что вы пытаетесь достичь, скорее это:

List<Orders> reservationlist = new ArrayList<>(); 
reservationlist.add(new Orders("2016-08-09", "2016-08-20", "Mr Smith", "1234567")); 

Вместо

ArrayList<Launcher> reservationlist = new ArrayList<>(); 
reservationlist.add(2016-08-09, 2016-08-20, Mr Smith, 1234567; // there is an error 

И это:

reservationlist.add(reservation); 

Вместо

reservationlist.add(
    reservation.initialDate, reservation.finalDate, reservation.name, 
    reservation.drivingLicenceID) 
); // there is an error 
0

В дополнение к чему объясняется Nicolas Другая очевидная ошибка синтаксиса заключается в следующем:

while (choice < '1' | choice > '5' & choice != 'q'); 

вы реализовали свой conditional operators неправильно. Условный синтаксис OR равен ||, а синтаксис для AND - &&.

Также, прочитайте 'How do I ask a good question?'.

Смежные вопросы