Method[] mm = annotation.annotationType().getDeclaredMethods();
for( Method m : mm )
{
Class tClass = m.getReturnType();
AParam aParam = (AParam) tClass.getComponentType().getAnnotation( AParam.class );
if ( aParam!=null ) {
Annotation[] aValue = (Annotation[]) m.invoke(annotation);
for (Annotation ref : aValue) {
Method mv = ref.annotationType().getDeclaredMethod("value");
Object v = mv.invoke(ref);
params.addParameter(aParam.type(), v);
}
}
}
}
}