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.ParameterAPI 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.MethodgetModifiersA reference tojava.lang.reflect.Parameter#getModifiers.private java.lang.reflect.MethodgetNameA reference tojava.lang.reflect.Parameter#getName.private java.lang.reflect.MethodgetParametersA reference tojava.lang.reflect.Executable#getParameters.private java.lang.reflect.MethodisNamePresentA reference tojava.lang.reflect.Parameter#isNamePresent.private static java.lang.Object[]NO_ARGUMENTSAn empty array that can be used to indicate no arguments to avoid an allocation on a reflective call.
-
Constructor Summary
Constructors Modifier Constructor Description protectedForJava8CapableVm(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 intgetModifiers(java.lang.reflect.AccessibleObject executable, int index)Returns the given parameter's modifiers.java.lang.StringgetName(java.lang.reflect.AccessibleObject executable, int index)Returns the given parameter's implicit or explicit name.private java.lang.ObjectgetParameter(java.lang.reflect.AccessibleObject executable, int index)Returns thejava.lang.reflect.Parameterof an executable at a given index.booleanisNamePresent(java.lang.reflect.AccessibleObject executable, int index)Returnstrueif 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:
getModifiersin 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)Returnstrueif the given parameter has an explicit name.- Specified by:
isNamePresentin interfaceParameterDescription.ForLoadedParameter.Dispatcher- Parameters:
executable- The parameter to introspect.index- The parameter's index.- Returns:
trueif 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:
getNamein 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.Parameterof 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.
-
-