0

Java に、キーワードが表示されるメソッド (および/またはクラスなど) の名前でコンパイラが置換するキーワード (または同等のもの) はありますか? これは、

__FUNCTION__

マクロは C/C++ です。

Java が「マクロをサポートしていない」ことは知っていますが、ユーザーに #define 可能なマクロを要求しているわけではありません。コンパイラが認識しているリテラル文字列に置き換えられるキーワードの小さなセットだけです。

コードの一部が表示されるメソッドを取得するメソッドがあることは知っていますが ( http://www.rgagnon.com/javadetails/java-0420.html )、これらは無料ではないと思います。驚くことではありませんが、この機能があればトレースで使用したいので、実際にはコストがゼロかそれに非常に近い必要があります。

これはコンパイラの実装次第だと思うので、おそらく私の質問は、通常の Java コンパイラ (JDK に付属するものは何でも) がこれをサポートしているかどうかです。

そうでない場合、なぜこれが利用できないのか理解できません。コンパイラがコンパイルしているコードのメソッド名を確実に知っているため、コンパイラが提供するのは簡単だと思います。

4

1 に答える 1

0

最終メソッドの場合、コンパイラは呼び出しをマクロのようなメソッドの実際の本体に置き換えることができます。このメカニズムは と呼ばれinliningます。

C++ では、関数 a を宣言するオプションがありますinline

于 2013-03-29T18:09:10.437 に答える