Mega Code Archive

 
Categories / Java / Reflection
 

Find Annotated Fields

import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; public class Util{   public static Field[] findAnnotatedFields(Class<?> clazz, Class<? extends Annotation> annotationClass) {     Field[] declaredFields = clazz.getDeclaredFields();     List<Field> annotatedFields = new ArrayList<Field>(declaredFields.length);     for (Field field : declaredFields) {       if( field.isAnnotationPresent(annotationClass)){         annotatedFields.add(field);       }     }     return annotatedFields.toArray(new Field[annotatedFields.size()]);       }      public static Annotation[] findFieldAnnotations(Class<?> clazz,String fieldName) throws NoSuchFieldException {     Field field = clazz.getDeclaredField(fieldName);     return field.getAnnotations();   }      public static <T extends Annotation> T findFieldAnnotation(Class<?> clazz,String fieldName, Class<T> annotationClass) throws NoSuchFieldException {     Field field = clazz.getDeclaredField(fieldName);     return field.getAnnotation(annotationClass);   } }