Class MethodHandleAccessorFactory.MethodHandleMethodAccessor
java.lang.Object
dev.derklaro.reflexion.internal.handles.MethodHandleAccessorFactory.MethodHandleMethodAccessor
- All Implemented Interfaces:
BaseAccessor<Method>,MethodAccessor<Method>
- Enclosing class:
MethodHandleAccessorFactory
private static final class MethodHandleAccessorFactory.MethodHandleMethodAccessor
extends Object
implements MethodAccessor<Method>
A method accessor based on method handles.
- Since:
- 1.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Methodprivate final MethodHandleprivate final Reflexion -
Constructor Summary
ConstructorsConstructorDescriptionMethodHandleMethodAccessor(@NotNull Method method, @NotNull Reflexion reflexion, @NotNull MethodHandle methodHandle) Constructs a new method handle method accessor instance. -
Method Summary
Modifier and TypeMethodDescription@NotNull MethodGet the java.lang.reflect member which is wrapped by this accessor.@NotNull ReflexionGet the reflexion instance which created this accessor instance.<V> @NotNull Result<V> invoke()Invokes the underlying method using the instance the reflexion object used to create this accessor is bound to (if the method is not static).<V> @NotNull Result<V> Invokes the underlying method using the given instance.<V> @NotNull Result<V> Invokes the underlying method using the given instance.<V> @NotNull Result<V> invokeWithArgs(@NotNull Object... args) Invokes the underlying method using the instance the reflexion object used to create this accessor is bound to (if the method is not static).
-
Field Details
-
method
-
reflexion
-
methodHandle
-
-
Constructor Details
-
MethodHandleMethodAccessor
public MethodHandleMethodAccessor(@NotNull @NotNull Method method, @NotNull @NotNull Reflexion reflexion, @NotNull @NotNull MethodHandle methodHandle) Constructs a new method handle method accessor instance.- Parameters:
method- the method which is wrapped by this accessor.reflexion- the reflexion instance which produced the lookup call.methodHandle- the method handle to get the method value.
-
-
Method Details
-
getMember
Get the java.lang.reflect member which is wrapped by this accessor.- Specified by:
getMemberin interfaceBaseAccessor<Method>- Returns:
- the wrapped member.
-
getReflexion
Get the reflexion instance which created this accessor instance.- Specified by:
getReflexionin interfaceBaseAccessor<Method>- Returns:
- the reflexion instance which created this instance.
-
invoke
Invokes the underlying method using the instance the reflexion object used to create this accessor is bound to (if the method is not static). This method never throws an exception all exceptions are given back to the caller in the returned result instance.This method invokes the wrapped method without any arguments.
- Specified by:
invokein interfaceMethodAccessor<Method>- Type Parameters:
V- the type of values returned by the wrapped method.- Returns:
- the result instance of the invocation, either holding the result of the method or any exception thrown.
-
invoke
Invokes the underlying method using the given instance. This method never throws an exception all exceptions are given back to the caller in the returned result instance.This method invokes the wrapped method without any arguments. The given instance should be present in case the method is not static, and the associated reflexion instance has no instance bound to it. If an instance is given in case the method is static, the instance will be ignored silently.
- Specified by:
invokein interfaceMethodAccessor<Method>- Type Parameters:
V- the type of values returned by the wrapped method.- Parameters:
instance- the instance to invoke the wrapped method on.- Returns:
- the result instance of the invocation, either holding the result of the method or any exception thrown.
-
invokeWithArgs
Invokes the underlying method using the instance the reflexion object used to create this accessor is bound to (if the method is not static). This method never throws an exception all exceptions are given back to the caller in the returned result instance.- Specified by:
invokeWithArgsin interfaceMethodAccessor<Method>- Type Parameters:
V- the type of values returned by the wrapped method.- Parameters:
args- the arguments to use on when invoking the wrapped method.- Returns:
- the result instance of the invocation, either holding the result of the method or any exception thrown.
-
invoke
@NotNull public <V> @NotNull Result<V> invoke(@Nullable @Nullable Object instance, @NotNull @NotNull Object... args) Invokes the underlying method using the given instance. This method never throws an exception all exceptions are given back to the caller in the returned result instance.The given instance should be present in case the method is not static, and the associated reflexion instance has no instance bound to it. If an instance is given in case the method is static, the instance will be ignored silently.
- Specified by:
invokein interfaceMethodAccessor<Method>- Type Parameters:
V- the type of values returned by the wrapped method.- Parameters:
instance- the instance to invoke the wrapped method on.args- the arguments to use on when invoking the wrapped method.- Returns:
- the result instance of the invocation, either holding the result of the method or any exception thrown.
-