2017-03-21 31 views
-2
roomArray.add(new Room(bed, kitchen, accessible, coffee, roomNumber)); 
    bookingReport(); 

} 

public void bookingReport() 
{ 
    System.out.println(roomArray.get(4)); 
} 

我想要這樣打印用戶輸入的房間號碼,但是我收到了一個界限錯誤。什麼是問題?使用get(4)索引4處的值,應返回roomNumber。使用ArrayList.get()API訪問各個元素的索引值時出現越界錯誤?

+2

您確定自己並不是指'.get(3)',它是零索引的,並且都是。 –

+0

除.get(0)之外的任何內容都會返回錯誤。 roomArray也是一個列表 – nammrick

回答

0

除非你已經添加了其他Room對象,它看起來像在這段代碼roomArray只具有與此創建一個Room對象 - new Room(bed, kitchen, accessible, coffee, roomNumber)

如果您嘗試roomArray.get(0),你可能會得到你想要的那個房間,但你需要一個訪問方法來獲取roomNumber

基本上在Room類:

public class Room 
{ 
    private int roomNum; 

    //I'm guessing what your constructor looks like based on your code, but I don't know the types 
    public Room(boolean hasBed, String roomName, boolean isAccessible, boolean hasCoffee, int roomNumber) 
    { 
     roomNum = roomNumber; 
    } 

    //Here is your accessor method 
    public int getRoomNumber() 
    { 
     return roomNum; 
    } 
} 

然後在您的通話代碼中,您可以通過以下方式訪問:

System.out.println(roomArray.get(0).getRoomNumber()); 
+0

是的,如果我使用roomArray.get(0)它打印牀,廚房,可訪問,咖啡和roomNumbers所有在一行。如何爲roomNumber創建訪問器方法? roomArray也是一個列表 – nammrick

+0

我已經更新了我的答案,基本上,一旦你從數組中得到了你想要的房間,在這種情況下就是廚房,那麼你必須調用你的訪問器方法來訪問廚房的屬性。在我的例子中,我調用了getRoomNumber方法。 – mrfreester

+0

非常感謝,先生 – nammrick

相關問題