出于调试目的,我希望在运行时能够显示定义给定类的.groovy源文件。它可能是原生的吗?
请注意,groovy类可能不在stacktrace中,而是在参数中给出的类。结果将是具有签名的函数:
String getSourceInfo(Class<?> clazz) {...} //returns /home/user/work/..../SomeClass.groovy
作为扩展,我们还可以检索行号或在字段和方法上使用此函数:
String getSourceInfo(Field field) {...} //returns /..../SomeClass.groovy#13:5
如果没有,我正在考虑在ClassNode上添加一个Groovy AST添加注释。它应该不会太困难,因为我们拥有所有必需的信息(例如SEMANTIC_ANALYSIS),但可能有一些标准的方法。有什么建议吗?
答案 0 :(得分:0)
e= new Exception();
StackTraceElement[] st = e.getStackTrace();
for(StackTraceElement s:st)
{
s.getLineNumber()
}
//没有投掷,只获取信息