gpt4 book ai didi

reflection - 在 Groovy 中找出方法的名称

转载 作者:行者123 更新时间:2023-12-04 22:15:09 25 4
gpt4 key购买 nike

Groovy 中有没有办法找出被调用方法的名称?

def myMethod() {
println "This method is called method " + methodName
}

这与鸭子类型相结合将允许非常简洁(并且可能难以阅读)的代码。

最佳答案

不,与 Java 一样,没有本地方法可以做到这一点。

您可以编写一个 AST 转换,以便您可以注释该方法,这可以在该方法内设置一个局部变量。

或者,您可以使用生成堆栈跟踪的旧 Java 方式,并使用以下内容找到正确的 StackTraceElement:

import static org.codehaus.groovy.runtime.StackTraceUtils.sanitize

def myMethod() {
def name = sanitize( new Exception().fillInStackTrace() ).stackTrace.find {
!( it.className ==~ /^java_.*|^org.codehaus.*/ )
}?.methodName

println "In method $name"
}

myMethod()

关于reflection - 在 Groovy 中找出方法的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10103495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com