आप एनोटेशन के अंदर मूल्यों को कैसे सेट करते हैं?एनोटेशन मूल्य प्राप्त करें?
मैं निम्नलिखित एनोटेशन को परिभाषित किया है:
@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()
के लिए सेट किया गया था।
हाँ मुझे यह काम मिल गया; धन्यवाद। "प्रकार()" वैकल्पिक बनाने का उनका तरीका है? अभी तक, JsonElement एनोटेशन – jonney
में टाइप() को घोषित किया जाना है उत्तर में संपादित किया गया। –