Class LocalVariableTableParameterNameDiscoverer

java.lang.Object
org.springframework.core.LocalVariableTableParameterNameDiscoverer
All Implemented Interfaces:
ParameterNameDiscoverer

@Deprecated(since="6.0.1", forRemoval=true) public class LocalVariableTableParameterNameDiscoverer extends Object implements ParameterNameDiscoverer
Deprecated, for removal: This API element is subject to removal in a future version.
as of 6.0.1, in favor of StandardReflectionParameterNameDiscoverer (with the "-parameters" compiler flag)
Implementation of ParameterNameDiscoverer that uses the LocalVariableTable information in the method attributes to discover parameter names. Returns null if the class file was compiled without debug information.

Uses ObjectWeb's ASM library for analyzing class files. Each discoverer instance caches the ASM discovered information for each introspected Class, in a thread-safe manner. It is recommended to reuse ParameterNameDiscoverer instances as far as possible.

This class is deprecated in the 6.0 generation and scheduled for removal in 6.1 since it is effectively superseded by StandardReflectionParameterNameDiscoverer. For the time being, this discoverer logs a warning every time it actually inspects a class file which is particularly useful for identifying remaining gaps in usage of the standard "-parameters" compiler flag, and also unintended over-inspection of e.g. JDK core library classes (which are not compiled with the "-parameters" flag).

Since:
2.0
Author:
Adrian Colyer, Costin Leau, Juergen Hoeller, Chris Beams, Sam Brannen
See Also:
  • Constructor Details

    • LocalVariableTableParameterNameDiscoverer

      public LocalVariableTableParameterNameDiscoverer()
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Method Details

    • getParameterNames

      @Nullable public String[] getParameterNames(Method method)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: ParameterNameDiscoverer
      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.

      Specified by:
      getParameterNames in interface ParameterNameDiscoverer
      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 public String[] getParameterNames(Constructor<?> ctor)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: ParameterNameDiscoverer
      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.

      Specified by:
      getParameterNames in interface ParameterNameDiscoverer
      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