0

Javaにはパラメーター検証ソリューションがあることを理解しています。JAX-RS には、検証とデータ抽出の両方のためのさまざまな注釈があると思います。私の質問は、スタンドアロン Java アプリケーションに独自のパラメーター検証クラスを実装したい場合、パラメーターが検証された場合にのみメソッドが実行されるようにするにはどうすればよいでしょうか? リフレクションを使用してパラメーターを見つけ@LowerCaseCheckて検証を実行していますが、この検証コードを配置する場所がわかりません。

public void print(@LowerCaseCheck String lowerCaseString) {
  ....
}
4

3 に答える 3

2

メソッドのバイト コードを変更してチェックを実行する (またはチェックを実行するメソッドを呼び出す) 必要があります。これを行う最も簡単な方法は、AspectJ などのアスペクト指向のライブラリを使用することです。

于 2013-09-06T11:36:52.650 に答える
0

あなたが探していることを行うライブラリの例については、ギャグを見てください。asm バイトコード操作ライブラリを使用して、注釈付きメソッドの開始時に検証チェックを挿入します。

于 2013-09-06T11:42:21.393 に答える
0

Bean Validation (JSR-303) を使用して問題を解決できませんか? @Pattern(regexp) 注釈は、必要なことだけを行うようです。

public void print(@Pattern(regexp = "^[a-z]*$") String lowerCaseString) {
  ....
}
于 2013-09-06T11:46:53.937 に答える