我创建了自己的注释,我通过反射利用它来在我的代码中做出决定。该注释具有为其唯一元素设置的默认值。有没有一种方法可以通过反射访问默认值?从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'。我想知道为什么从实例中获得类不同于静态访问类。感谢您的伟大答案,我很感激。 –