2014-12-19 80 views
2

編輯:笨。問題是我得到一個值爲'null'的字符串如何正確比較groovy中的null?


如何正確比較groovy中的null?

我有以下腳本

println "row6: " + row[6] 

if(row[6] == null) { 
    println "if" 
} 
    else { 
    println "else" 
} 

當我與行運行指定字段爲空,這是輸出:

row6: null 
else 

Groovy Docsa == null會的工作,而a.is(null)不會。

那麼我該如何在正確的方式比較groovy中的null?

P.S.我看到了The SO-Thread: comparing-null-and-number-in-groovy。它表示將null作爲數字來處理,但這仍然意味着==比較應該在值爲null時起作用。

回答

1

此代碼打印如果

def row = [] 
row[6] = null 
println "row6: " + row[6] 

if(row[6] == null) { 
    println "if" 
} else { 
    println "else" 
} 

你肯定row[6]爲空?

+0

是的。請參閱調試行'println'row6:「+ row [6]',這會導致'row6:null'。在我的腳本中,當腳本進入else部分時,它會導致Null指針異常,當試圖將null轉換爲int時:'數據轉換錯誤轉換''null'(yyy:xxx INT)「' – bish 2014-12-19 09:47:09

+0

提供完整示例。 – Opal 2014-12-19 09:48:48

+1

啊看到它。它是一個值爲'null'的字符串。 OMG我很愚蠢 – bish 2014-12-19 09:48:57