Reflection Java

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 annotationClass) {
    Field[] declaredFields = clazz.getDeclaredFields();
    List annotatedFields = new ArrayList(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 findFieldAnnotation(Class clazz,String fieldName, Class annotationClass) throws NoSuchFieldException {
    Field field = clazz.getDeclaredField(fieldName);
    return field.getAnnotation(annotationClass);
  }
}