Package net.bytebuddy.description.method
Class ParameterDescription.ForLoadedParameter.Dispatcher.ForJava8CapableVm
- java.lang.Object
-
- net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter.Dispatcher.ForJava8CapableVm
-
- All Implemented Interfaces:
ParameterDescription.ForLoadedParameter.Dispatcher
- Enclosing interface:
- ParameterDescription.ForLoadedParameter.Dispatcher
@Enhance public static class ParameterDescription.ForLoadedParameter.Dispatcher.ForJava8CapableVm extends java.lang.Object implements ParameterDescription.ForLoadedParameter.Dispatcher
A dispatcher for VMs that support thejava.lang.reflect.Parameter
API for Java 8+.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter.Dispatcher
ParameterDescription.ForLoadedParameter.Dispatcher.CreationAction, ParameterDescription.ForLoadedParameter.Dispatcher.ForJava8CapableVm, ParameterDescription.ForLoadedParameter.Dispatcher.ForLegacyVm
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.reflect.Method
getModifiers
A reference tojava.lang.reflect.Parameter#getModifiers
.private java.lang.reflect.Method
getName
A reference tojava.lang.reflect.Parameter#getName
.private java.lang.reflect.Method
getParameters
A reference tojava.lang.reflect.Executable#getParameters
.private java.lang.reflect.Method
isNamePresent
A reference tojava.lang.reflect.Parameter#isNamePresent
.private static java.lang.Object[]
NO_ARGUMENTS
An empty array that can be used to indicate no arguments to avoid an allocation on a reflective call.
-
Constructor Summary
Constructors Modifier Constructor Description protected
ForJava8CapableVm(java.lang.reflect.Method getParameters, java.lang.reflect.Method getName, java.lang.reflect.Method isNamePresent, java.lang.reflect.Method getModifiers)
Creates a new dispatcher for a modern VM.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getModifiers(java.lang.reflect.AccessibleObject executable, int index)
Returns the given parameter's modifiers.java.lang.String
getName(java.lang.reflect.AccessibleObject executable, int index)
Returns the given parameter's implicit or explicit name.private java.lang.Object
getParameter(java.lang.reflect.AccessibleObject executable, int index)
Returns thejava.lang.reflect.Parameter
of an executable at a given index.boolean
isNamePresent(java.lang.reflect.AccessibleObject executable, int index)
Returnstrue
if the given parameter has an explicit name.
-
-
-
Field Detail
-
NO_ARGUMENTS
private static final java.lang.Object[] NO_ARGUMENTS
An empty array that can be used to indicate no arguments to avoid an allocation on a reflective call.
-
getParameters
private final java.lang.reflect.Method getParameters
A reference tojava.lang.reflect.Executable#getParameters
.
-
getName
private final java.lang.reflect.Method getName
A reference tojava.lang.reflect.Parameter#getName
.
-
isNamePresent
private final java.lang.reflect.Method isNamePresent
A reference tojava.lang.reflect.Parameter#isNamePresent
.
-
getModifiers
private final java.lang.reflect.Method getModifiers
A reference tojava.lang.reflect.Parameter#getModifiers
.
-
-
Constructor Detail
-
ForJava8CapableVm
protected ForJava8CapableVm(java.lang.reflect.Method getParameters, java.lang.reflect.Method getName, java.lang.reflect.Method isNamePresent, java.lang.reflect.Method getModifiers)
Creates a new dispatcher for a modern VM.- Parameters:
getParameters
- A reference tojava.lang.reflect.Executable#getTypeArguments
.getName
- A reference tojava.lang.reflect.Parameter#getName
.isNamePresent
- A reference tojava.lang.reflect.Parameter#isNamePresent
.getModifiers
- A reference tojava.lang.reflect.Parameter#getModifiers
.
-
-
Method Detail
-
getModifiers
public int getModifiers(java.lang.reflect.AccessibleObject executable, int index)
Returns the given parameter's modifiers.- Specified by:
getModifiers
in interfaceParameterDescription.ForLoadedParameter.Dispatcher
- Parameters:
executable
- The executable to introspect.index
- The parameter's index.- Returns:
- The parameter's modifiers.
-
isNamePresent
public boolean isNamePresent(java.lang.reflect.AccessibleObject executable, int index)
Returnstrue
if the given parameter has an explicit name.- Specified by:
isNamePresent
in interfaceParameterDescription.ForLoadedParameter.Dispatcher
- Parameters:
executable
- The parameter to introspect.index
- The parameter's index.- Returns:
true
if the given parameter has an explicit name.
-
getName
public java.lang.String getName(java.lang.reflect.AccessibleObject executable, int index)
Returns the given parameter's implicit or explicit name.- Specified by:
getName
in interfaceParameterDescription.ForLoadedParameter.Dispatcher
- Parameters:
executable
- The parameter to introspect.index
- The parameter's index.- Returns:
- The parameter's name.
-
getParameter
private java.lang.Object getParameter(java.lang.reflect.AccessibleObject executable, int index)
Returns thejava.lang.reflect.Parameter
of an executable at a given index.- Parameters:
executable
- The executable for which a parameter should be read.index
- The index of the parameter.- Returns:
- The parameter for the given index.
-
-