2
我有註釋無法訪問場的註釋在Java中
public @interface Equals {
String name() default "unknown";
}
和類,其字段由註釋的Equals
public class TransportSearch {
@Equals(name="vin")
public String vin = null;
}
,我有一個方法,另一類
public String (TransportSearch transportSearch){
Field[] fields = transportSearch.getClass().getDeclaredFields();
String vin = null;
for(Field field : fields){
try {
Equals annot = field.getAnnotation(Equals.class);
if(annot!=null && annot.name().equals("vin")){
try {
vin = (String) field.get(transportSearch);
} catch (IllegalAccessException e){
e.printStackTrace();
}
}
} catch(NullPointerException e) {
e.printStackTrace();
}
}
return vin;
}
不幸在這個方法field.getAnnotation(Equals.class)
返回null,我不明白爲什麼? 你能幫我嗎?
小小的更正:默認的RetentoinPolicy是RetentionPolicy.CLASS。但它是一個正確的答案。 – Seelenvirtuose
@Seelenvirtuose感謝您的更正 - 我編輯了我的答案以反映這一點。 – Balder