字符串比较使用!=没有按预期失败

时间:2012-11-14 17:50:48

标签: java string junit equality

  

可能重复:
  How do I compare strings in Java?

我有一个布尔语句,由于错误地使用true来比较字符串,因此评估为!=

public int calculateWeight( String hostname, String parameter, 
         String parInstance ) throws InvalidWeightException
{
    if ( parameter != "*" && hostname != "*" && parInstance != "*" )
    {
        return 1;
    }
    ...
}

调试调用此方法的JUnit测试时,if语句的计算结果为true(通过Eclipse Inspect),但return语句未执行。传递给parInstance变量的值实际上是"*"。如果我们使用!(.equals()),则Eclipse Inspect会按预期显示false

1 个答案:

答案 0 :(得分:0)

查看操作员绑定!= vs&&和括号。