Выражение в основном идентично:
if ( (cat != null && cat.getColor() == "orange") || cat.getColor() == "grey") {
...
}
Порядок приоритета здесь таков, что AND (&&
) имеет более высокий приоритет, чем OR (||
).
Вы также должны знать, что использование ==
для проверки на равенство строк будет иногда работать в Java, но это не то, как вы должны это делать. Вы должны сделать:
if (cat != null && ("orange".equals(cat.getColor()) || "grey".equals(cat.getColor()))) {
...
}
т.е. используйте equals()
методы для сравнения String
, а не ==
, который просто ссылается на равенство. Ссылочное равенство для строк может вводить в заблуждение. Например:
String a = new String("hello");
String b = new String("hello");
System.out.println(a == b); // false