记录为什么Java编译器不提供调用方的行号信息?
C#有这些非常好的编译器注释:CallerMemberName
,CallerFilePath
CallerLineNumber
,它(正如名字所说)调用方的成员名、文件路径和行号。这使得记录源代码行号这样的事情变得非常简单(而且高效)
在Java9的StackWalker之前,似乎唯一的选择是使用非常昂贵的getStackTrace()
。为什么Java花了这么长时间才包含一个解决方案
另外,与一个简单的编译时计算参数相比,Java9的StackWalker有多高效?我猜差别很大。。。这就引出了一个问题:为什么Java不能有编译时计算的参数
共 (0) 个答案