Java 在ArrayList中循环以获取项目编号
错误没有返回所需的语句,因此我需要thing来输出一个正整数,该整数将能够复制数组列表,这将非常感谢thatnksJava 在ArrayList中循环以获取项目编号,java,loops,arraylist,get,Java,Loops,Arraylist,Get,错误没有返回所需的语句,因此我需要thing来输出一个正整数,该整数将能够复制数组列表,这将非常感谢thatnks @Override public String getDescription(int itemNumber) { if(isKnownItemNumber(itemNumber) == true) { for (recordItem i : itemList) { if(i.getItemNumber() == ite
@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);
}
});
}
}
getter方法的通常约定是不接受任何参数,并返回ask字段
您的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;
}
您的记录方法可能还有另一个错误。您可以在此项上设置参数,而不是在您创建的新项上设置参数。请尝试以下方法:
@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);
}
}
另一个bug:返回i.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;
}
为什么getItemNumber函数接受参数??它应该返回item的itemNumber,您将一个参数传递给函数并返回相同的参数..\n什么是recordItem?标记错误的第一条注释。在没有参数的情况下尝试,或返回此.itemNumber;尽管查看代码,您的项目列表中应该只有香蕉。顺便说一下,最好将isItemNumber(…)==false更改为!isItemNumber(…)
。相同,但看起来更好。@anopll好的,我做了这些更改(在上面编辑),但现在它只返回“不存在”。这是因为您只记录到静态项:-)。因此,只保存最新的记录(以及列表中的许多新项目(空)。好的,我做了这些更改(在上面编辑),但现在它只返回“不存在”。这一定不是完整的错误消息,什么不存在?好吧,在getDescription中,如果它没有找到具有该数字的项,则返回“不存在”哦,是的,很抱歉我错过了该消息。出于某些原因,该消息输出null是的,您应该返回I.description.:-。否则返回静态项的说明,该说明为空。查看edit.it,它不允许我执行i.description,但允许我执行i.getdescription,但仍然返回“不存在”添加一个普通的getdescription()。现在应该可以了。我忘了您可能无法访问字符串描述。