天天看點

groovy if 判斷字元串_Groovy Tip 3 如何在if條件語句中判斷對象為空

匿名使用者

1級

2013-11-12 回答

Groovy Tip 3 如何在if條件語句中判斷對象為空

在Java語言程式設計中,對對象的非空判斷是一個永恒的話題。例如,經常需要對一個字元串進行如下的判斷:

if(str!=null&&!str.equals(""))

{

......

}

輸入這樣的語句的确使人生厭,而且有時候還會忘掉輸入“!str.equals("")”語句中的“!”導緻代碼出現邏輯錯誤。

而靈活的Groovy語言開發就不需要擔心這樣的問題。同樣的判斷語句,隻需要輸入下面的代碼:

def str = null

if(str)

{

println"str is not null"

}

else

{

println'str is null'

}

這個語句段的執行結果為:

str is null

可以看出,if(str)判斷語句,當str為null的時候,不執行。可能要問,當str = ''的時候會怎樣?

def str = ''

if(str)

{

println"str is not null"

}

else

{

println'str is null'

}

執行結果還是:

str is null

這樣,可以把開頭的那段Java代碼改寫成如下的代碼了:

if(str)

{

......

}

這樣就簡潔多了。

除了字元串對象,那其他對象的非空判斷?來看下面的例子:

def map = ['key1':'value1']

if(map)

{

println'map is not null'

}

else

{

println'map is null'

}

map.remove('key1')

if(map)

{

println'this time,map is not null'

}

else

{

println'this time,map is null'

}

執行結果為:

map is not null

this time,map is null

同樣,來看看List對象:

def list = []

if(list)

{

println'list is not null'

}

else

{

println'list is null'

}

list<

if(list)

{

println'here, list is not null'

}

else

{

println'here, list is null too'

}

輸出結果為:

list is null

here, list is not null

如果是Domain對象?

class Empl

{

String name

}

執行下面的語句:

Empl em = new Empl()

if(em)

{

println'em is not null'

}

else

{

println'em is null'

}

結果為:

em is not null

可以看出,對于Domain對象,隻要該對象不是null,則if(em)條件為true。