Java .equals()方法无法正常工作?
所以问题是,这个方法非常有效:Java .equals()方法无法正常工作?,java,equals,Java,Equals,所以问题是,这个方法非常有效: public ShopItem getShopItem(String itemCode) { ShopItem storedShopItem=null; if(itemsList.isEmpty()) { System.out.println("The items list is empty"); } else{ for(ShopItem shopItem : itemsList) {
public ShopItem getShopItem(String itemCode)
{
ShopItem storedShopItem=null;
if(itemsList.isEmpty())
{
System.out.println("The items list is empty");
}
else{
for(ShopItem shopItem : itemsList) {
if(shopItem.getItemCode().equals(itemCode)){
storedShopItem=shopItem;
}
}
}
return storedShopItem;
}
但是这个-
public ShopUser getShopUser(String shopUserID)
{
ShopUser storedShopUser=null;
if(usersList.isEmpty())
{
System.out.println("The users list is empty");
}
else{
for(ShopUser shopUser : usersList){
if(shopUser.getShopUserID().equals(shopUserID)){
storedShopUser=shopUser;
}
}
}
return storedShopUser;
}
事实并非如此。在使用调试器之后,我发现问题出现在它应该将值分配给
storedShopUser
时。不管这两个字符串是否相等,它都会跳过它。这两个get方法是相同的,并且各自都可以正常工作。需要检查两件事:shopUserID是字符串而不是其他类型吗?您确定其中一个字符串中没有空格吗?无论哪种方式,这里都没有足够的信息来帮助您(需要一些示例ShopUserID和传递到函数中的一个)您是否正在使用数据库?我在过去也遇到过类似的问题,因为我想为我的对象创建一个新实例。如果您尝试创建它的新实例,ID将不匹配,.equals()
将失败。尝试在屏幕上打印每个对象的每个id,看看是否与字符串匹配谢谢您的快速响应!我正在读取的文件第二部分的字符串前面似乎有空格,但由于它们在所有商店用户面前,但在商品前面没有一个空格,所以我错过了它们。