通过ArrayList循环获取项目编号

时间:2016-01-21 15:12:31

标签: java loops arraylist get

错误没有返回所需的语句所以我需要thiung输出一个能够复制数组列表的正整数,这将非常感谢nks

@Override
public String getDescription(int itemNumber)    {
    if(isKnownItemNumber(itemNumber) == true)   {
        for (recordItem i : itemList)    {
            if(i.getItemNumber() == itemNumber)    {
                return description;
            }
        }
    }
    return "does not exist";
}

   @Override
public void setDescription(String description) {
    this.description = description;
} 

这是填充的arraylist的主要方法:

package Purchase;
import java.util.*;

import javax.swing.SwingUtilities;


public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable()   {


        public void run() {
            gui.PosGUI.makeAndShowGUI();


            Items.newItems.recordItem(01,"banana",1.00,1);
            , "Mayonnaise", 2.00, 0);



        }

    });

}
}

2 个答案:

答案 0 :(得分:1)

getter 方法的通常合同是不带参数,并返回询问的字段。

您的getItemNumber方法接受一个参数,并将其作为结果返回,这没有任何意义。

public int getItemNumber(int itemNumber) {
    return itemNumber;
}

将此方法替换为常见的getter:

public int getItemNumber() {
        return itemNumber;
    }

您的isKnownItemNumber方法变为:

public boolean isKnownItemNumber(int itemNumber)    {

    //assert itemNumber >= 0 : "Item Number must be greater than or equal to 0";
    for (recordItem i : itemList)    {
        if (i.getItemNumber() == itemNumber)   {
            return true;
        }

    }
    return false;
}

答案 1 :(得分:0)

你的记录方法可能还有另一个错误。您可以在此设置参数,而不是在您创建的新项目上设置参数。试试这个:

@Override
public void recordItem(int itemNumber, String description, double unitPrice, int sort)  {

   if ((isKnownItemNumber(itemNumber) == false) && (unitPrice > 0) && (sort == 0 || sort == 1)) {
       Items theItems = new Items();
       theItems.itemNumber = itemNumber;
       theItems.description = description;
       theItems.unitPrice = unitPrice;
       theItems.sort = sort;
       itemList.add(theItems);
   }

}

另一个错误:return i.description;而不是return description;

public String getDescription(int itemNumber)    {
    if(isKnownItemNumber(itemNumber) == true)   {
        for (recordItem i : itemList)    {
            if(i.getItemNumber() == itemNumber)    {
                return i.getDescription();
            }
        }
    }
    return "does not exist";
}

 public String getDescription(){
    return description;
}