У меня есть следующий метод, где я хочу, чтобы проверить event.status
свойство только если status
был принят в:Test только если переменная не является нулевым, если оператор
def findEvent(String desc, String status = null, Collection events) {
return events.find {
it.description == desc && \\If status is not null: it.status == status
}
throw new Exception("Review Event Record Not Found: ${desc}")
}
Я думал, что это может быть сделано, как это, но он не работает:
def findEvent(String desc, String status = null, Collection events) {
return events.find {
it.description == desc && (status != null ?: {it.status == status})
}
throw new Exception("Review Event Record Not Found: ${desc}")
}
Можно ли это сделать? Или мне нужно вернуться к чему-то вроде этого:
if (status != null) {
return events.find {
it.description == desc && it.status == status
}
} else if (status == null) {
return events.find {
it.description == desc
}
}
Есть ли какая-то передовая практика?
(it.description == desc) && ((status == null) || (it.status == status)) выглядит идеально. Я подтверждаю, что это работает, когда я получаю шанс. По общему признанию, это первый случай, когда я когда-либо встречался с оператором Элвиса, поэтому я играл в темноте. Привет, Дэйв –