Interface ParameterNameDiscoverer

All Known Implementing Classes:
AspectJAdviceParameterNameDiscoverer, DefaultParameterNameDiscoverer, KotlinReflectionParameterNameDiscoverer, PrioritizedParameterNameDiscoverer, StandardReflectionParameterNameDiscoverer

public interface ParameterNameDiscoverer
Interface to discover parameter names for methods and constructors.

Parameter name discovery is not always possible, but various strategies are available to try, such as looking for debug information that may have been emitted at compile time, and looking for argname annotation values optionally accompanying AspectJ annotated methods.

Since:
2.0
Author:
Rod Johnson, Adrian Colyer
  • Method Summary

    Modifier and Type
    Method
    Description
    Return parameter names for a constructor, or null if they cannot be determined.
    Return parameter names for a method, or null if they cannot be determined.
  • Method Details

    • getParameterNames

      @Nullable String[] getParameterNames(Method method)
      Return parameter names for a method, or null if they cannot be determined.

      Individual entries in the array may be null if parameter names are only available for some parameters of the given method but not for others. However, it is recommended to use stub parameter names instead wherever feasible.

      Parameters:
      method - the method to find parameter names for
      Returns:
      an array of parameter names if the names can be resolved, or null if they cannot
    • getParameterNames

      @Nullable String[] getParameterNames(Constructor<?> ctor)
      Return parameter names for a constructor, or null if they cannot be determined.

      Individual entries in the array may be null if parameter names are only available for some parameters of the given constructor but not for others. However, it is recommended to use stub parameter names instead wherever feasible.

      Parameters:
      ctor - the constructor to find parameter names for
      Returns:
      an array of parameter names if the names can be resolved, or null if they cannot