目前,正如其他一些文章中提到的,您無法僅從單獨的註釋中檢索局部變量值。
但是,我確實有一個類似的問題,並設法使用字段提出解決方案。樣本代碼如下:
接口類
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface test{
}
POJO
public class testObject{
@test
private String one;
private String two;
//Getters and Setters
}
獲取對象值
public void getFields (Object obj){
Field fields = obj.getClass().getDeclaredFields();
for (Field f : fields){
test fieldAnnotation = f.getAnnotation(test.Class);
if (fieldAnnotation != null){
f.get(obj);
// Do things here based on the values
}
}
}
主類
public static void main(String[] args){
//Create object
testObject test = new testObject();
test.setOne("testOne");
test.setTwo("testTwo");
getFields(test);
}
希望這有助於解釋你如何能得到的字段基於註解的對象。您只需使用註釋來標記要檢索的字段,然後從對象中讀取值。
您在另一條評論中的鏈接爲您提供了答案:它不受類文件格式的支持。如果您願意,我可以給出與JVM規範和解釋的鏈接的答案,但我認爲其他問題幾乎涵蓋了它。我很驚訝'apt'不能給你你需要的東西。 – parsifal