我在搜索部分代码:
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,尽管它们相似。有什么想法吗?
答案 0 :(得分:2)
使用 == 运算符无法获得字符串比较 您可以通过测试 equals()来获得比较。
试试这个:
if(prod.get(i).getName().equals(SearchProduct))
答案 1 :(得分:0)
这不是神奇的家伙,它的java ...... :) double equal ==仅用于原始类型 比较对象需要使用equals()方法检查
答案 2 :(得分:0)
在Java
中,对于non-primitive
数据类型的比较对象,您必须使用equals()方法。