You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Alexander Müller (JIRA)" <ji...@apache.org> on 2014/07/13 15:49:05 UTC
[jira] [Updated] (LANG-1021) Provide methods to retrieve all
fields/methods annotated with a specific type
[ https://issues.apache.org/jira/browse/LANG-1021?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexander Müller updated LANG-1021:
-----------------------------------
Attachment: annotatedMethodsAndFields.patch
I've attached a patch that adds 4 methods:
{code}
MethodUtils.getMethodsWithAnnotation(final Class<?> cls, final Class<? extends Annotation> annotationCls)
MethodUtils.getMethodsListWithAnnotation(final Class<?> cls, final Class<? extends Annotation> annotationCls)
FieldUtils.getFieldsWithAnnotation(final Class<?> cls, final Class<? extends Annotation> annotationCls)
FieldUtils.getFieldsListWithAnnotation(final Class<?> cls, final Class<? extends Annotation> annotationCls)
{code}
These 4 new methods are tested in {{FieldUtilsTest}} and {{MethodUtilsTest}}.
> Provide methods to retrieve all fields/methods annotated with a specific type
> -----------------------------------------------------------------------------
>
> Key: LANG-1021
> URL: https://issues.apache.org/jira/browse/LANG-1021
> Project: Commons Lang
> Issue Type: New Feature
> Components: lang.reflect.*
> Reporter: Alexander Müller
> Fix For: Review Patch
>
> Attachments: annotatedMethodsAndFields.patch
>
>
> I find myself repeatedly searching for fields (or methods) that are annotated with a specified annotation like this (field-only example):
> {code}
> List<Field> fieldsWithAnnotation = new ArrayList<>();
> Field[] fields = FieldUtils.getAllFields(type);
> for (Field field : fields) {
> Annotation fieldAnnotation = field.getAnnotation(annotation);
> if (fieldAnnotation != null) {
> fieldsWithAnnotation.add(fieldAnnotation);
> }
> }
> {code}
> Commons Lang could provide these methods:
> {code}
> public Field[] AnnotationUtils.getFieldsWithAnnotation(Annotation annotation);
> public List<Field> AnnotationUtils.getFieldListWithAnnotation(Annotation annotation);
> public Method[] AnnotationUtils.getMethodsWithAnnotation(Annotation annotation);
> public List<Method> AnnotationUtils.getMethodListWithAnnotation(Annotation annotation);
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)