Ответ 1
if (!"success".equals(statusCheck))
Вот мой фрагмент кода:
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
.
if (!"success".equals(statusCheck))
Конечно, вы можете использовать equals
, если хотите идти вместе с толпой, но если вы действительно хотите удивить своих коллег-программистов, проверьте неравенство следующим образом:
if ("success" != statusCheck.intern())
==
и !=
работают с идентификатором объекта. Хотя два String
имеют одинаковое значение, они фактически представляют собой два разных объекта.
используйте !"success".equals(statusCheck)
вместо этого.
выполните одно из этих действий.
if(!statusCheck.equals("success"))
{
//do something
}
or
if(!"success".equals(statusCheck))
{
//do something
}
Используйте !statusCheck.equals("success")
вместо !=
.
Вам нужно использовать метод equals()
при сравнении строки, иначе вы просто сравниваете ссылки на объекты друг с другом, поэтому в вашем случае вы хотите:
if (!statusCheck.equals("success")) {
вы можете использовать метод equals() для соответствия вашим требованиям. == в языке программирования Java имеет другое значение!