2014-12-19 160 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