错误没有返回所需的语句所以我需要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);
}
});
}
}
答案 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;
}