Исключение вне границ с использованием ArrayList - PullRequest
0 голосов
/ 21 ноября 2018

Я не уверен, почему я получаю исключение вне пределов, может кто-то, пожалуйста, помогите, это действительно раздражает меня, поскольку я действительно хочу понять, что происходит.

public class LoyaltyCardList {private ArrayList loyaltyCards;

/**
 * 
 */
public LoyaltyCardList()
{
    loyaltyCards = new ArrayList <LoyaltyCard> ();
}

/**
 * 
 */
public void addLoyaltyCard(LoyaltyCard newLoyaltyCard)
{
    loyaltyCards.add(newLoyaltyCard);
}

public void getAllLoyaltyCards()
{
    int index = 0;
    while(index <= getNumberOfLoyaltyCards())
    {
        loyaltyCards.get(index).printCustomerDetails();
        index++;
    }
}

public void getLoyaltyCard(int LoyaltyCardEntry)
{
    if(LoyaltyCardEntry < 0)
    {
        System.out.println("Negative Entry: " +LoyaltyCardEntry);
    }
    else if(LoyaltyCardEntry < getNumberOfLoyaltyCards())
    {
        loyaltyCards.get(LoyaltyCardEntry).printCustomerDetails();
    }
    else
    {
        System.out.println("No Such Entry:" + LoyaltyCardEntry);
    }
}

public int getNumberOfLoyaltyCards()
{
    return loyaltyCards.size();
}

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Вы распечатываете класс LoyaltyCards, а не loyaltyCard экземпляр

for ( LoyaltyCard loyaltyCard : LoyaltyCards)
{
    System.out.println(loyaltyCard);
}

Вы также должны убедиться, что в вашем классе LoyaltyCard есть соответствующее переопределение toString (), иначе оно, вероятно, не будетпреобразовать в нужный формат

0 голосов
/ 21 ноября 2018

Изменить

System.out.println(LoyaltyCards);

на

System.out.println(loyaltyCard);

В данный момент вы пытаетесь распечатать сам список.

...