Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业务
源代码在线查看: 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
}
}