首页 > 解决方案 > 使用 ArrayList 的越界异常

问题描述

我不确定为什么我会出现越界异常,有人可以帮忙吗,这真的让我很烦,因为我真的很想了解正在发生的事情。

公共类 LoyaltyCardList { 私人 ArrayList 忠诚卡;

/**
 * 
 */
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();
}

标签: javaindexoutofboundsexception

解决方案


您打印出 LoyaltyCards 类而不是loyaltyCard实例

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

您还应该确保在 LoyaltyCard 类中有适当的 toString() 覆盖,否则它可能不会转换为所需的格式


推荐阅读