检查是否直接执行Groovy脚本
在Python中,可以通过检查检查是否直接执行Groovy脚本,groovy,Groovy,在Python中,可以通过检查\uuuu name\uuuu=='\uuuu init\uuuu'来进行检查 Groovy中是否有与此等效的功能?我想最简单的方法是将当前类名(使用class.simpleName)与实际执行的文件脚本名进行比较 以下是一个例子: 让我们在M.groovy文件中创建第一个类: class M { static main(args){ def m = new M() } def M(){ def thisCla
\uuuu name\uuuu=='\uuuu init\uuuu'
来进行检查
Groovy中是否有与此等效的功能?我想最简单的方法是将当前类名(使用
class.simpleName
)与实际执行的文件脚本名进行比较
以下是一个例子:
让我们在M.groovy
文件中创建第一个类:
class M {
static main(args){
def m = new M()
}
def M(){
def thisClass = this.getClass().simpleName
def callingClass = new File(getClass().protectionDomain.codeSource.location.path).name.with{ it.take(it.lastIndexOf('.')) }
println("thisClass: ${thisClass}, callingClass: ${callingClass}")
if (thisClass == callingClass){
println 'Calling from M class...'
} else {
println 'Calling from outside.'
}
}
}
现在,从外部类,例如T.groovy
可以调用实例化M
类:newm()
。
当您执行M.groovy
时,您得到:
thisClass: M, callingClass: M
Calling from M class...
当您运行groovy T.groovy
时,您将得到:
thisClass: M, callingClass: T
Calling from outside.
希望这有帮助