web-dev-qa-db-ja.com

このnullチェックと空でないチェックをgroovyで書くより良い方法はありますか?

ロジックを実行する前に、コードでnull/emptyチェックを実行する必要があります。 !members?.emptyが正しくないと感じたため、以下の項目があります。

以下を書くためのよりグルーヴィーな方法はありますか?

if (members && !members.empty) {
    // Some Work
}
77
Jay Bose

実際、Groovier Wayがあります。

if(members){
    //Some work
}

membersがコレクションの場合、すべてを実行します。 Nullチェックと空のチェック(空のコレクションはfalseに強制されます)。あられ Groovy Truth 。 :)

160
dmahapatro
!members.find()

この問題を解決する最良の方法は、上記のコードだと思います。 Groovy 1.8.1以降で動作します http://docs.groovy-lang.org/docs/next/html/groovy-jdk/Java/util/Collection.html#find() 例:

def lst1 = []
assert !lst1.find()

def lst2 = [null]
assert !lst2.find()

def lst3 = [null,2,null]
assert lst3.find()

def lst4 = [null,null,null]
assert !lst4.find()

def lst5 = [null, 0, 0.0, false, '', [], 42, 43]
assert lst5.find() == 42