0

次の Java コードを使用します。

public class Bean{
  private String value;
  public Bean(@NonNull String value) {
    //Usually fail-fast validation can be added here if it is needed
    this.value = value;
  }
  public String getValue() {return this.value;}

}

コンパイル時以外の実行時に、注釈を使用してコンストラクターの引数 を確認することは可能ですか? 個人的には、実行時に検証チェックを実行できるchecker-frameworkがまだ見つかりませんでした。しかし、アノテーション プロセッサを実装して実行時チェックを行うことは可能ですか?value@NonNull

4

3 に答える 3

0

あなたの最終的な誤解: あなたの質問に対する唯一の答えはありません。

このようなソースコードで使用される場合、一部の注釈はにコンパイル時間を対象としています。データフローを分析して、あちこちで「注釈付き」契約に違反していることを伝える静的分析ツールのように。

ただし、一部の注釈は、実行時に使用することを「意図」しており、たとえば「Bean」で使用することもできます。このようなオブジェクトは、HTTP 要求のパラメーターとして入ってくる可能性があり、アノテーションを介して指定されたルールに従って、たとえば JSON として受信したコンテンツが実際に有効かどうかをチェックするフレームワークがあります。いくつかの例については、このチュートリアルを参照してください。

于 2018-07-13T14:33:00.497 に答える