【发布时间】:2021-01-17 06:25:14
【问题描述】:
考虑下面的代码
task circle {
doLast {
float r = Float.parseFloat(project.properties["radius"])
println (22/7)*(r ** 2)
}
}
task square {
doLast {
float s = Float.parseFloat(project.properties["side"])
println s*s
}
}
这给错误Cannot invoke method multiply() on null object
如果我将上面的代码更改如下,那就没问题了
task circle {
doLast {
float r = Float.parseFloat(project.properties["radius"])
println 22/7*(r ** 2)
}
}
task square {
doLast {
float s = Float.parseFloat(project.properties["side"])
println s*s
}
}
可能是什么原因?
【问题讨论】:
-
(println(22/7))*(r ** 2)是 groovy 看到的。 println 的结果为空。 -
@cfrick 是对的。在表达式
println(x)*y中,首先对println(x)求值,返回null。然后null * y给出了那个错误。你必须像这样写你的表达式:println (x*y)。好问题,不过!
标签: gradle groovy build build.gradle