我創建了自己的註釋,我通過反射利用它來在我的代碼中做出決定。該註釋具有爲其唯一元素設置的默認值。有沒有一種方法可以通過反射訪問默認值?從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;
}
我的問題的研究結果顯示,沒有實例。我推理這個值可以通過類以靜態方式訪問,但它不能。所以我剩下兩個問題。
- 是否有可能獲得註釋中元素的默認值?
- 如果是這樣,怎麼樣?
另外,我知道我可以硬編碼這個值,但是我想讓程序稍微更健壯。
解決方案返回null;我正在檢查以確保它不是我。這是你跑的代碼嗎? –
我寫了一個測試程序,它運行成功:http://pastie.org/5356931 – Vulcan
我只是想出來,你的粘貼重申了它。你需要以靜態方式獲得課程。而不是'pageableRequestMapping.getClass',你需要使用'PageableRequestMapping.class'。我想知道爲什麼從實例中獲得類不同於靜態訪問類。感謝您的偉大答案,我很感激。 –