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);
}
}
Related examples in the same category