public static AnnotationsList getParameterAnnotations(Method method) {
    AttributeList attribs = method.getAttributes();
    AttRuntimeVisibleParameterAnnotations visible =
        (AttRuntimeVisibleParameterAnnotations)
            attribs.findFirst(AttRuntimeVisibleParameterAnnotations.ATTRIBUTE_NAME);
    AttRuntimeInvisibleParameterAnnotations invisible =
        (AttRuntimeInvisibleParameterAnnotations)
            attribs.findFirst(AttRuntimeInvisibleParameterAnnotations.ATTRIBUTE_NAME);

    if (visible == null) {
      if (invisible == null) {
        return AnnotationsList.EMPTY;
      }
      return invisible.getParameterAnnotations();
    }

    if (invisible == null) {
      return visible.getParameterAnnotations();
    }

    // Both are non-null, so combine them.

    return AnnotationsList.combine(
        visible.getParameterAnnotations(), invisible.getParameterAnnotations());
  }
Gets the parameter annotations out of a given method. This combines both visible and invisible
annotations into a single result set.

@param method {@code non-null;} the method in question
@return {@code non-null;} the list of annotation sets, which may be empty
android/android_framework/dex-maker/src/main/java/com/android/dx/dex/cf/AttributeTranslator.java