如何在註釋中設置值?獲取註釋值?
我有以下注釋中定義:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface JsonElement {
int type();
}
這裏是使用它在一個POJO類
@JsonElement(type=GETTER_METHOD)
public String getUsername{
........................
}
和使用反射來檢查,如果該方法具有UTIL類中的方法出現JSonElement註釋並檢查類型值是什麼。
Method methods[] = classObject.getClass().getDeclaredMethods();
JSONObject jsonObject = new JSONObject();
try {
for (int i = 0; i < methods.length; i++) {
String key = methods[i].getName();
System.out.println(key);
if (methods[i].isAnnotationPresent(JsonElement.class) && key.startsWith(GET_CHAR_SEQUENCE)) {
methods[i].getDeclaredAnnotations();
key = key.replaceFirst(GET_CHAR_SEQUENCE, "");
jsonObject.put(key, methods[i].invoke(classObject));
}
}
return jsonObject;
} catch (Exception e) {
e.printStackTrace();
return null;
}
我如何知道type()
值是什麼?我可以找到註釋是否存在,但是我找不到找到爲type()
設置了什麼值(如果有)的方法。
是的,我得到它的工作;謝謝。是他們使「type()」成爲可選的方法嗎?到目前爲止,type()必須在JsonElement註釋 – jonney
中進行聲明,並編輯爲答案。 –