gpt4 book ai didi

java - 来自另一个类的 Getter 不适用于 ArrayList

转载 作者:行者123 更新时间:2023-11-30 02:10:16 25 4
gpt4 key购买 nike

所以我一直在研究为什么我的代码不起作用。我有 2 个类,第一个类是我的 getter 和 setter:

public class ShopItems {
private String itemName;
private double price;

public double getPrice(){
return price;
}

public String getItemName(){
return itemName;
}

private void setPrice(p){
price = Math.abs(p);
}

public ShopItems(String i, double p){
itemName = i.toUpperCase();
setPrice(p);
}
}

这是我的第二堂课,我在其中创建了一个 ArrayList:

public class ShopLedger {
private ArrayList<ShopItems> shoppingList;

//I want to make a deep copy of the items in the parameter into shopping list.
public ShopLedger(ArrayList<ShopItems> s){
shoppingList = new ArrayList<ShopItems> (s);

for(int i=0;i<s.size();i++){
shoppingList.set(i,s.get(i));
}
}

//And here is where things go wrong. I want the method to return the price of the item
//in the parameter, and return null if the item name cannot be found.
public Double getPrice(String itemName) {
for(int i=0;i<shoppingList.size();i++){
if(shoppingList.get(i).getItemName() == itemName){
return shoppingList.get(i).getPrice();
}
}
return null;
}
}

这就是我现在所拥有的,代码不断给我错误“java.lang.NullPointerException”。我的客户端类将 ShoppingList 设置为: Candy(2.3), Book(20.0), Pens(5.5), Tape(10.2)项目名称为 Pens 。但是,我已经进入 Debug模式,并且由于某种原因,getPrice 方法的这一部分:

if(shoppingList.get(i).getItemName() == itemName){
return shoppingList.get(i).getPrice();
}

从不执行。请帮忙!

最佳答案

感谢一位名为 Ajris 的用户,我发现了这个问题,他指出我应该在 if 语句中使用 shoppingList.get(i).getItemName().equals(itemName)而不是 shoppingList.get(i).getItemName() == itemName

关于java - 来自另一个类的 Getter 不适用于 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50335259/

25 4 0