Java编译器中的机制将方法名称替换为文字字符串

时间:2013-03-29 18:07:31

标签: java

Java中是否存在关键字(或等效项),编译器使用关键字出现的方法(和/或类等)的名称进行替换?这与

类似
__FUNCTION__

宏是C / C ++。

我知道Java“不支持宏”,但我不是要求用户#define'able宏,只是用编译器知道的文字字符串替换的一小组关键字。

我知道有一些方法可以让方法中出现一段代码(http://www.rgagnon.com/javadetails/java-0420.html),但我认为这些方法不是免费的。毫不奇怪,如果存在这种功能,我想在跟踪中使用它,所以它确实需要零成本或非常接近它。

我想这将取决于编译器的实现,所以我的问题可能是通常的Java编译器(JDK附带的任何代码)是否支持这一点。

如果没有,我就无法理解为什么它不可用,因为它似乎很有用,我认为编译器提供它是微不足道的,因为它肯定知道它编译的代码的方法名称。

1 个答案:

答案 0 :(得分:0)

在最终方法的情况下,编译器可以用像Macro这样的方法的实际主体替换调用。此机制称为inlining

在C ++中,我们可以选择将函数声明为inline