2017-12-19 3 views
0

モデルのフィールドを取得するためにJava Reflectionsを使用していますが、一部のフィールドは@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(",")) + ");"; 
} 

答えて

関連する問題