我有这个文件gradle/build.gradle
,内容如下
println "project name is: ${project.name}" // gives `project name is gradle`
println "expects null: ${project?.foo?.name}" // fail to run
在第二行中,似乎安全导航操作符?.
无法按预期工作。当我只是在gradle --stacktrace
下运行gradle/
时,这是来自gradle的错误消息:
Caused by: groovy.lang.MissingPropertyException: Could not find property 'foo' on root project 'gradle'.
那么,为什么会这样呢?
答案 0 :(得分:5)
安全导航操作符不会保护您不会调用无效属性,只有在有效属性为null时才会保护您。
gradle project class没有foo属性,因此您可以看到上述行为。
您可以protect the code拨打hasProperty