2017-12-19 1 views
0

Java Reflection을 사용하여 모델의 필드를 가져오고 일부 필드는 @ Nullable 주석이있는 Nullable입니다. 내가 필드의 주석을 취득 할 때Nullable 주석이 필드에 표시되지 않습니다.

public class Category implements Serializable { 

    private String id; 
    private String name; 
    @Nullable 
    private String description; 
    @Nullable 
    private String urlIcon; 
    private ArrayList<String> sounds; 

    //Getters and setters 
} 

은 그리고, 모든 필드는 주석을 가지고 :( 내가 왜 몰라.

당신이 날 도와 줘요 수 있습니다.

public static <T> String getCreateSentence(Class<T> clazz) { 
    StringBuilder sentence = new StringBuilder("CREATE TABLE " + clazz.getSimpleName() + " ("); 
    //Loop for ever field in Model 
    for (Field field : clazz.getDeclaredFields()) { 
     if (field.getType().isPrimitive() && !field.getName().equals("serialVersionUID")) { 
      if (field.getType().equals(Integer.TYPE) 
        || field.getType().equals(Boolean.TYPE) 
        || field.getType().equals(Byte.TYPE) 
        || field.getType().equals(Long.TYPE) 
        || field.getType().equals(Short.TYPE)) { 
       //field.isAnnotation is false ever and field.getDeclaredAnnotations has 0 items ever 
       if (field.isAnnotationPresent(Nullable.class)) { 
        sentence.append(field.getName()).append(" INT NULL, "); 
       } else { 
        sentence.append(field.getName()).append(" INT NOT NULL, "); 
       } 
      } else { 
       //I evaluate another field types 
      } 
     } 
    } 

    return sentence.substring(0, sentence.lastIndexOf(",")) + ");"; 
} 

답변

관련 문제