private boolean match(Object item, Description mismatchDescription) {
        Annotation annotation;

        try {
            annotation = getAnnotation(item, annotationClass);
        } catch (Exception e) {
            mismatchDescription.appendText(e.toString());
            return false;
        }

        if (annotation == null) {
            mismatchDescription.appendText("annotation missing");
            return false;
        }

        return matchParameter(annotation, mismatchDescription);
    }