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,看看是否与字符串匹配谢谢您的快速响应!我正在读取的文件第二部分的字符串前面似乎有空格,但由于它们在所有商店用户面前,但在商品前面没有一个空格,所以我错过了它们。