2016-04-03 16 views
0

如果我有这样的脚本MVEL:MVEL空值

myString = null; 

if (myString == "Foo") { 
    return true; 
} 

我会得到这个脚本一个空指针?

因为我阅读文档,但它说==运算符类似于java中按值检查的.equals()方法,所以如果脚本中的某个操作数为假,我会得到一个空指针吗?

+0

为什么我会被降低投票率? – Ogen

回答

1

您可能会遇到问题中显示的表达式的问题。试试这个:

if ("Foo" == myString) 

看起来像一个愚蠢的变化,但考虑到equals()正在called under the hood,上面会翻译成:

if ("Foo".equals(null)) 

这很好,不像这一点,这是你之前有什么:

if (null.equals("Foo")) 
+0

这是一个很好的小窍门,但我很好奇,如果实际上等于方法被称为引擎盖下。我目前没有开发环境来测试它 – Ogen

+0

是的,根据这个[文档](https://en.wikisource.org/wiki/MVEL_Language_Guide#Value_Tests) –

+0

这只是说它相当于 - 它确实不一定意味着它被称为。 – Ogen