Ek açıklamaların içine nasıl değerler girilir?ek açıklama değeri olsun?
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface JsonElement {
int type();
}
Ve burada bir POJO sınıfına
@JsonElement(type=GETTER_METHOD)
public String getUsername{
........................
}
Ve bu yöntem olup olmadığını kontrol etmek yansıma kullanan util sınıfta kullanan yöntemdir:
Aşağıdaki açıklama tanımladıktan JSonElement açıklaması mevcut ve tip değerinin ne olduğunu kontrol etmek için.
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;
}
nasıl
type()
değerinin ne öğrenebilirim? Ek açıklamanın mevcut olup olmadığını bulabilirim, ancak
type()
için hangi değerin - eğer varsa - değerini belirleyen bir yöntem bulamıyorum.
evet çalışıyorum; Teşekkürler. "type()" ı isteğe bağlı yapmanın bir yolu nedir? Şu andan itibaren,(), JsonElement ek açıklamasında – jonney
cevabında düzenlenmiş olmalıdır. –