自分の注釈を作成しました。これをリフレクションを使用して自分のコードで決定します。注釈の唯一の要素に設定されたデフォルト値があります。リフレクションによってデフォルト値にアクセスする方法はありますか?デフォルト値を取得するためにJavaの注釈からデフォルトの要素値を取得
PageableRequestMapping.java(注釈)
package org.tothought.controllers.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface PageableRequestMapping {
String variablePath() default "/";
}
擬コード
private int parsePageNumber(StringBuffer requestURL,
PageableRequestMapping pageableRequestMapping) {
String variablePath = pageableRequestMapping.variablePath();
//Psuedo code doesn't work in Java, included to illustrate intentions
if(variablePath.equalsIgnoreCase(pageableRequestMapping.variablePath().default())){
//handle default case
}else{
//handle different case
}
return 0;
}
問題の私の研究は何の例を上げていません。私はこの値がクラスを通して静的な方法でアクセスできると理論化しましたが、それはできません。だから私は2つの質問が残されています。
- アノテーション内の要素のデフォルト値を取得することはできますか?
- もしそうなら、どうですか?
また、私はこの値をハードコードすることができますが、プログラムをやや頑強にしたいと思います。
解決方法はnullを返します。私はそれが私ではないことを確認しています。あなたはこのコードを実行しましたか? –
私は正常に実行されるテストプログラムを書いた:http://pastie.org/5356931 – Vulcan
私はちょうどそれを考え出し、あなたのペーストはそれを再確認した。クラスを静的に取得する必要があります。 'pageableRequestMapping.getClass'の代わりに' PageableRequestMapping.class'を使う必要があります。なぜインスタンスからクラスを取得するのがクラスに静的にアクセスするのかとは異なるのだろうか。偉大な答えをありがとう、私はそれを感謝します。 –