类似的变量并不相似

时间:2014-02-01 15:04:46

标签: android

我在搜索部分代码:

String neededShop = "not found";
float min_price=999999;
ProductHandler ph = new ProductHandler(this);
prod=ph.getAllProducts();
for(int i = 0 ; i<prod.size(); i++)
{
    if(prod.get(i).getName()==SearchProduct)
    {
        if(min_price>prod.get(i).getPrice())
        {   
            min_price=prod.get(i).getPrice();
            neededShop = prod.get(i).getShop();
        }
    }
}

在这一部分:if(prod.get(i).getName()==SearchProduct)

prod    [0] name    "Cat" (id=830032142800) 
SearchProduct   "Cat" (id=830032120832)

当它比较时,它返回false,尽管它们相似。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

使用 == 运算符无法获得字符串比较 您可以通过测试 equals()来获得比较。

试试这个:

if(prod.get(i).getName().equals(SearchProduct))

答案 1 :(得分:0)

这不是神奇的家伙,它的java ...... :) double equal ==仅用于原始类型 比较对象需要使用equals()方法检查

答案 2 :(得分:0)

Java中,对于non-primitive数据类型的比较对象,您必须使用equals()方法。