Java 另一个类的Getter不';不能在ArrayList上工作
所以我一直在琢磨为什么我的代码不起作用。我有两门课,第一门课是我的getter和setter: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
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();
}