这个例子可以很容易地在 groovy 控制台中测试。
var a 被评估为非空,而 b 被评估为空。
两者都是 org.codehaus.groovy.runtim.NullObject 的实例
def b = null
println b.getClass()
println b == null
def a = null.getClass().newInstance()
println a.getClass()
println a == null
有谁知道为什么?
在处理反射代码时这是一件棘手的事情。