在我们按如下方式声明任务时在gradle构建脚本中:
task lol
lol << {
prinln "lol's action!"
}
并将其作为gradle -q lol
执行它运行正常。我的问题是为什么lol
任务实例已经创建并且NullPointerException
没有造成?声明task lol
是否同时声明和定义任务?
答案 0 :(得分:3)
任务实际上是Project上的一种方法,而task lol
正在调用利用optional parens的方法。将lol
变成一个字符串需要一些时髦的魔法。然后,Project上的lol Task属性使用<<
运算符调用leftShift方法。见operator overloading。