2015-09-12 3 views
0

Я пытаюсь создать простой сервер и клиент irc, и я пытаюсь найти способ, чтобы сервер реагировал по-разному на определенные сообщения, отправленные на него. Я использую kryonet api для работы в сети. Вот мой слушатель:Сравнивая значение передаваемых объектов

 public void received(Connection c, Object o){ 

      if (o instanceof TransferMessage){ 

       TransferMessage msg = (TransferMessage)o; 

       if (msg.text == "Hello"){ 

        System.out.println("User said Hello to me!"); 

       } 
       System.out.println(tag+msg.user+": "+msg.text); 
       server.sendToAllTCP(msg); 

      } 

     } 

Я создал клиентскую программу, которая отправляет сообщение «Привет» при подключении. Однако сервер не может распознать, что msg.text действительно равен «Hello», или какая-то другая аномалия происходит. Произошла ошибка, но сервер игнорирует условное утверждение. Я также подтвердил, что строка, которую отправляет клиент, является тем, что она должна быть.

+1

http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java –

+0

Я понимаю, что проблема заключается в том, что сервер не сравнивает два вообще. Это пропускает это утверждение if. –

ответ

1

== сравнивает ссылки. Для сравнения значений, попробуйте

"Hello".equals(msg.text) 
Смежные вопросы