Test si la variable n'est pas nulle dans si l'état

J'ai la méthode suivante où je veux tester le event.status bien que si status a été adoptée en:

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

J'ai pensé qu'il pourrait être fait comme ça, mais il ne semble pas fonctionner:

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

Est-il de toute façon ce qui pourrait être fait? Ou dois-je revenir à quelque chose comme ceci:

if (status != null) {
    return events.find {
        it.description == desc && it.status == status
    }
} else if (status == null) {
    return events.find {
        it.description == desc
    }
}

Est-il une sorte de meilleure pratique?

OriginalL'auteur Matthew Brown | 2012-06-12