从主类内部的另一个类访问数组列表

问题描述 投票:-4回答:4

由于我是Java的新手,所以我不知道如何进行此操作。我想将我的TimeSlot类的arraylist中的所有对象显示到主类中。我已经尝试了几种使用for(int = 0; i

TimeSlot.java

import java.util.ArrayList;

public class TimeSlot {

    private String slotName;
    private ArrayList<Booking> bookingList;


    public TimeSlot(String sn) {

        this.slotName = sn;
        this.bookingList = new ArrayList<Booking>();

        Booking booking1 = new Booking("CS1011", "A04", "Aiman");
        Booking booking2 = new Booking("CS1012", "A13", "Nazim");
        Booking booking3 = new Booking("CS1013", "A06", "Sarah");
        Booking booking4 = new Booking("CS1014", "A21", "Majid");

        bookingList.add(booking1);
        bookingList.add(booking2);
        bookingList.add(booking3);
        bookingList.add(booking4);



    }

    public String getSlotName() {
        return slotName;
    }

    public ArrayList<Booking> getBookingList() {
        return bookingList;
    }

    public boolean isBooking (String bId, String cId, String sId) {
        boolean isVerifyBooking = false;
        for(Booking newBooking: bookingList){
            if((newBooking.getBookingId().equals(bId)) && newBooking.getComputerId().equals(cId) && newBooking.getStudentId().equals(sId)) {
                return true;
            }
        }
            return isVerifyBooking;
    }

}

Main.java

public static void main(String[] args) {

        // TODO Auto-generated method stub
        Faculty faculty = new Faculty("Computer Science and Technology", "");
        Lab lab = new Lab("");
        ArrayList<Computer> computerList = new ArrayList<Computer>();
        ArrayList<Booking> isBookingList = new Booking(null, null, null).getBookingList();

           if (option.equals("1")) {

             System.out.println("\nChoose day: ");
             String days = sc.next();
             System.out.println("\nChoose date: ");
             String date = sc.next();

             boolean isValidDay = lab.verifyDate(days, date);

             if (isValidDay) {
               Day day = new Day(days, date);
               System.out.println("\nBooking date: " + day.getDay() + " " + day.getDate());
               System.out.println("\nPlease select a computer (A01 ~ A40): ");
               String cId = sc.next();

              System.out.println(isBookingList.size());
            }
          } else if (option.equals("2")) {

          // I want to display it here

          for (Booking booking: isBookingList) {
            System.out.println(booking.getBookingList());
         }
      }

java
4个回答
1
投票

替换行

isBookingList = new Booking(null, null, null).getBookingList();

with

isBookingList = new TimeSlot("your sn").getBookingList();

现在尝试您的for循环。


0
投票

实例化您的TimeSlot类。这样您就可以获取bookingList数据。

TimeSlot timeSlot = new TimeSlot("yourSlotName");

0
投票

您正在使用空值创建Booking类的对象,并试图访问列表

您应该创建TimeSlot对象以访问已启动的列表


0
投票

使用参数slot-name创建TimeSlot类的实例,然后访问预订列表。

© www.soinside.com 2019 - 2024. All rights reserved.