guava/src/com/google/common/reflect/Invokable.java
public final ImmutableList<Parameter> getParameters() {
    Type[] parameterTypes = getGenericParameterTypes();
    Annotation[][] annotations = getParameterAnnotations();
    AnnotatedType[] annotatedTypes = getAnnotatedParameterTypes();
    ImmutableList.Builder<Parameter> builder = ImmutableList.builder();
    for (int i = 0; i < parameterTypes.length; i++) {
      builder.add(
          new Parameter(
              this, i, TypeToken.of(parameterTypes[i]), annotations[i], annotatedTypes[i]));
    }
    return builder.build();
  }
public final ImmutableList<Parameter> getParameters() {
    Type[] parameterTypes = getGenericParameterTypes();
    Annotation[][] annotations = getParameterAnnotations();
    AnnotatedType[] annotatedTypes = getAnnotatedParameterTypes();
    ImmutableList.Builder<Parameter> builder = ImmutableList.builder();
    for (int i = 0; i < parameterTypes.length; i++) {
      builder.add(
          new Parameter(
              this, i, TypeToken.of(parameterTypes[i]), annotations[i], annotatedTypes[i]));
    }
    return builder.build();
  }
Returns all declared parameters of this {@code Invokable}. Note that if this is a constructor
of a non-static inner class, unlike {@link Constructor#getParameterTypes}, the hidden {@code
this} parameter of the enclosing class is excluded from the returned parameters.