Java is niet gelijk aan (!=) Werkt niet?

Hier is mijn codefragment:

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);
  }
}

Echter om de een of andere reden retourneert if (statusCheck != "success")false, en daarmee de MulticasterJoinException.


Antwoord 1, autoriteit 100%

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

Antwoord 2, autoriteit 17%

==en !=werken aan objectidentiteit. Hoewel de twee Strings dezelfde waarde hebben, zijn het eigenlijk twee verschillende objecten.

gebruik in plaats daarvan !"success".equals(statusCheck).


Antwoord 3, autoriteit 16%

Natuurlijk kun je equalsgebruiken als je mee wilt doen met de massa, maar als je je mede-programmeurs echt wilt verbazen, controleer dan op ongelijkheid als volgt:

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

stagiairmethode maakt deel uit van de standaard Java String API.


Antwoord 4, autoriteit 3%

doe een van deze.

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

Antwoord 5, autoriteit 2%

Gebruik a.u.b. !statusCheck.equals("success")in plaats van !=.

Hierzijn meer details.


Antwoord 6

Je moet de methode equals()gebruiken bij het vergelijken van een string, anders vergelijk je alleen de objectreferenties met elkaar, dus in jouw geval wil je:

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

Antwoord 7

u kunt de equals()-methode gebruiken om aan uw eisen te voldoen. == in java heeft programmeertaal een andere betekenis!

Other episodes