@SuppressWarnings("unchecked")
    private <T extends Annotation> T[] getParameterAnnotations(Class<T> annotationClass)
    {
        Annotation[][] paramAnnotations = method.getMethod().getParameterAnnotations();
        T[] annotations = (T[]) Array.newInstance(annotationClass, paramAnnotations.length);
        
        for (int i = 0; i < paramAnnotations.length; ++i) {
            for (int j = 0; j < paramAnnotations[i].length; ++j) {
                Annotation paramAnnotation = paramAnnotations[i][j];
                if (paramAnnotation.annotationType().isAssignableFrom(annotationClass)) {
                    annotations[i] = (T) paramAnnotation;
                }
            }
        }
        
        return annotations;
    }