19

私は の意味を十分に認識しており、RetentionPolicyそれらが何をするのか、いつそれらを使用するのが理にかなっていると思われるのかを知っています。私自身の注釈については、それらが実行時に必要か、クラス ファイルで必要か、または単にコンパイルのために必要かを正確に知っています。ただし、ライブラリで定義された注釈を使用すると、私見では確信が持てません。

たとえば、javax.annotation.Generated生成されたコードをマークするためのものですが、ほとんど役に立ちません。ソースで動作するツールよりもバイトコードで動作するツールの方が多いため、情報は使用される直前に消えます。

実行時に存在しないアノテーションはスロー ClassNotFoundExceptionされないため(たとえば、インターフェイスの欠落などとは異なり)、使用しRetentionPolicy.RUNTIMEても害はないようです。それとも私が間違っていますか?

Retentionそれとも、数バイトの節約が異なるsを使用する理由でしたか? 私には、あまりにも多くの問題を引き起こしているように思えます。私は何が欠けていますか?

4

3 に答える 3