大名鼎鼎的java动态脚本语言。已经通过了sun的认证
源代码在线查看: safenavigationtest.groovy
class SafeNavigationTest extends GroovyTestCase { void testNullNavigation() { def x = null def y = x?.bar assert y == null } void testNormalPropertyNavigation() { def x = ['a':456, 'foo':['bar':123, 'x':456], 'z':99] def y = x?.foo?.bar println("found y ${x?.foo?.bar}") assert y == 123 } void testNullPropertyNavigation() { def x = null def y = x?.foo?.bar assert y == null def java.awt.Color color = null def a = color?.alpha assert a == null } void testNormalMethodCall() { def x = 1234 def y = x?.toString() assert y == "1234" } void testNullMethodCall() { def x = null def y = x?.toString() assert y == null } }