Java不等于(!=)不起作用?

时间:2011-12-13 05:19:17

标签: java

这是我的代码段:

public void joinRoom(String room) throws MulticasterJoinException {
  String statusCheck = this.transmit("room", "join", room + "," + this.groupMax + "," + this.uniqueID);

  if (statusCheck != "success") {
    throw new MulticasterJoinException(statusCheck, this.PAppletRef);
  }
}

但由于某些原因,if (statusCheck != "success")正在返回false,从而抛出MulticasterJoinException

7 个答案:

答案 0 :(得分:156)

if (!"success".equals(statusCheck))

答案 1 :(得分:31)

当然,如果你想和人群一起使用,你可以使用equals,但是如果你真的想让你的同事们惊奇地检查这样的不平等:

if ("success" != statusCheck.intern())

intern方法是标准Java String API的一部分。

答案 2 :(得分:22)

==!=处理对象标识。虽然两个String具有相同的值,但它们实际上是两个不同的对象。

改为使用!"success".equals(statusCheck)

答案 3 :(得分:6)

做其中一个。

   if(!statusCheck.equals("success"))
    {
        //do something
    }

      or

    if(!"success".equals(statusCheck))
    {
        //do something
    }

答案 4 :(得分:4)

请使用!statusCheck.equals("success")代替!=

Here是更多详情。

答案 5 :(得分:3)

比较字符串时需要使用方法equals(),否则你只是将对象引用相互比较,所以在你的情况下你想要:

if (!statusCheck.equals("success")) {

答案 6 :(得分:2)

您可以使用equals()方法来满足您的需求。 ==在java编程语言中有不同的含义!