Java 另一个类的Getter不';不能在ArrayList上工作

Java 另一个类的Getter不';不能在ArrayList上工作,java,arraylist,methods,getter-setter,Java,Arraylist,Methods,Getter Setter,所以我一直在琢磨为什么我的代码不起作用。我有两门课,第一门课是我的getter和setter: public class ShopItems { private String itemName; private double price; public double getPrice(){ return price; } public String getItemName(){ return itemName; } private void se

所以我一直在琢磨为什么我的代码不起作用。我有两门课,第一门课是我的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;
 }
}

从不执行。请帮忙

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


使用equals()<代码>“aaaa”。等于(“aaaa”)

您可能需要使用equals()


shoppingList.get(i).getItemName()==此处您应该使用的itemNameequals@Ajris如果我尝试这样做,它会给我一个错误,说“赋值的左边必须是一个变量”,你如何使用它?像那样的事?shoppingList.get(i).getItemName().equals(itemName)是这样的:shopplingList.get(i).getItemName()=itemName哇哈哈,这是我唯一的问题,现在已经解决了。非常感谢!是的,谢谢!多么愚蠢的错误啊,不管怎样,你得到了你的答案
if(shoppingList.get(i).getItemName() == itemName){
      return shoppingList.get(i).getPrice();
}
if(shoppingList.get(i).getItemName().equals(itemName){
      return shoppingList.get(i).getPrice();
}