Groovy 安全导航操作员(?)不在gradle工作?

Groovy 安全导航操作员(?)不在gradle工作?,groovy,gradle,Groovy,Gradle,我有一个文件gradle/build.gradle,内容如下 println "project name is: ${project.name}" // gives `project name is gradle` println "expects null: ${project?.foo?.name}" // fail to run 在第二行中,安全导航操作员?。似乎没有按预期工作。当我在gradle/下运行gradle--stacktrace时,这里有一条来自gradle的错误消息: Ca

我有一个文件
gradle/build.gradle
,内容如下

println "project name is: ${project.name}" // gives `project name is gradle`
println "expects null: ${project?.foo?.name}" // fail to run
在第二行中,安全导航操作员
?。
似乎没有按预期工作。当我在
gradle/
下运行
gradle--stacktrace
时,这里有一条来自gradle的错误消息:

Caused by: groovy.lang.MissingPropertyException: Could not find property 'foo' on root project 'gradle'.

那么,为什么会发生这种情况呢?

安全导航操作符不会保护您不调用无效属性,它只会在有效属性为null时保护您

没有foo属性,因此您可以看到上面的行为

您可以通过调用
hasProperty