搜索方法始终为null

时间:2011-12-05 01:29:07

标签: java

我遇到了一个问题,我编写了一个方法来搜索名为Item的类。无论我搜索什么,它都返回null。我相信我遇到了可变范围的问题:

public Item search(String itemSearch) {
     Item search = null;
     for(Item i : items){
        if (i.getName() == itemSearch){
        search = i;
        }
     }
     return search;
  }

getName方法返回项的name属性。无论Item搜索总是为null,我猜这是由于变量范围而且并没有为每个循环分配?为什么这个方法总是为空?

谢谢

2 个答案:

答案 0 :(得分:4)

你不能使用==来比较java中两个字符串的内容。您需要使用.equals()方法

使用==只会比较两个字符串的地址,而equals会比较它们的值。

答案 1 :(得分:2)

您正在使用==比较字符串。您应该使用equals()方法。 E.G

i.getName().equals(itemSearch)

而不是循环整个循环使用if语句中的return i,而不是将i分配给搜索然后返回搜索。